Spring Boot - Mesmo repositório e mesma entidade para bancos de dados diferentes

Eu tenho um projeto Spring Boot com uma entidade e um repositório associado a essa entidade. No repositório, existe um método com uma consulta personalizada e no controlador do projeto, esse repositório é usado para retornar dados de diferentes bancos de dados postgresql. Esses bancos de dados têm as mesmas tabelas com as mesmas colunas (portanto, a entidade referida é a mesma), a única diferença entre esses bancos de dados é o ano (..., DB2015, DB2016, DB2017). Minhas perguntas são: Como posso retornar dados no controlador de projeto que pertencem a bancos de dados "diferentes"? É possível usar a mesma consulta para selecionar dados inicialmente no primeiro banco de dados, depois no segundo e assim por diante? Em outras perguntas, li que preciso de fontes de dados diferentes, isso está correto?

Esta é a entidade:

@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 é o repositório:

@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 é o 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);
}

Este é application.properties (neste caso, a fonte de dados é referida apenas a um banco de dados):

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

Espero que tudo esteja claro

questionAnswers(1)

yourAnswerToTheQuestion