Spring Boot: el mismo repositorio y la misma entidad para diferentes bases de datos

Tengo un proyecto Spring Boot con una entidad y un repositorio asociado a esta entidad. En el repositorio hay un método con una consulta personalizada y en el controlador del proyecto este repositorio se utiliza para devolver datos de diferentes bases de datos postgresql. Estas bases de datos tienen las mismas tablas con las mismas columnas (por lo que la entidad referida es la misma), la única diferencia entre estas bases de datos es el año (..., DB2015, DB2016, DB2017). Mis preguntas son: ¿Cómo puedo devolver datos en el controlador del proyecto que pertenecen a bases de datos "diferentes"? ¿Es posible usar la misma consulta para seleccionar datos inicialmente de la primera base de datos, luego de la segunda y así sucesivamente? En otras preguntas, he leído que necesito diferentes fuentes de datos, ¿es esto correcto?

Esta es la entidad:

@Entity(name = "REQUEST")
public class Request implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Id
@Column(name="IDREQUEST", nullable=false)
private BigDecimal idrequest;


@Column(name="PAYLOAD")
private String payload;

@Column(name="MITTENTE")
private String mittente;

@Column(name="SERVIZIO")
private String servizio;

@Column(name="DATARICEZIONE")
private BigDecimal dataricezione;

public BigDecimal getIdrequest() {
    return idrequest;
}

public void setIdrequest(BigDecimal idrequest) {
    this.idrequest = idrequest;
}

public String getPayload() {
    return payload;
}

public void setPayload(String payload) {
    this.payload = payload;
}

public String getMittente() {
    return mittente;
}

public void setMittente(String mittente) {
    this.mittente = mittente;
}

public String getServizio() {
    return servizio;
}

public void setServizio(String servizio) {
    this.servizio = servizio;
}

public BigDecimal getDataricezione() {
    return dataricezione;
}

public void setDataricezione(BigDecimal dataricezione) {
    this.dataricezione = dataricezione;
}

}

Este es el repositorio:

@Repository
public interface RequestRepository extends PagingAndSortingRepository<Request, BigDecimal> {

    @Query(nativeQuery=true, value="SELECT * FROM \"REQUEST\" WHERE strpos(\"PAYLOAD\",\'?1\') > 0")
    List<Request> findByCodiceFiscale(String codiceFiscale);

}

Este es el controlador

@RequestMapping(value="/ricercaadesioni/{codicefiscale}", method=RequestMethod.GET)
public ResponseEntity<List<Request>> ricercaAdesioniByCodiceFIscale(@PathVariable("codicefiscale") String codicefiscale) {

    List<Request> listAdesioni = requestRepo.findByCodiceFiscale(codicefiscale);

    return new ResponseEntity<List<Request>>(listAdesioni, HttpStatus.OK);
}

Esto es application.properties (en este caso, el origen de datos se refiere a un solo db):

spring.datasource.url=jdbc:postgresql://localhost:5432/DB2017_test
spring.datasource.username=xxx
spring.datasource.password=xxx

Espero que todo esté claro

Respuestas a la pregunta(1)

Su respuesta a la pregunta