Конфигурация MultiDb с Spring r2db c всегда использует только одну базу данных - PullRequest
1 голос
/ 02 мая 2020

У меня есть простая настройка Multi Database, чтобы опробовать конфигурацию Multi Database с r2db c. Однако он не работает должным образом, он всегда использует первую базу данных.

@Configuration
@EnableR2dbcRepositories(databaseClientRef="postgreDbClient". basePackages={"com.x.y.repo.postgresql"})
public class PostgreSqlConfiguration extends AbstractR2dbcConfiguration{

    @Bean(name="postgresqlConnectionFactory")
    ConnectionFactory connectionFactory(){
      return ConnectionFactories.get("r2dbc:postgresql://<host>:5432/<database>");
    }

    @Bean(name="postgreDbClient")
    DatabaseClient databaseClient(){
      return DatabaseClient.create(this.connectionFactory());
    }


}


@Configuration
@EnableR2dbcRepositories(databaseClientRef="mssqlDbClient". basePackages={"com.x.y.repo.mssql"})
public class PostgreSqlConfiguration extends AbstractR2dbcConfiguration{

    @Bean(name="mssqlConnectionFactory")
    ConnectionFactory connectionFactory(){
      return ConnectionFactories.get("r2dbc:mssql://<host>:1433/<database>");
    }

    @Bean(name="mssqlDbClient")
    DatabaseClient databaseClient(){
      return DatabaseClient.create(this.connectionFactory());
    }


}

com.x.y.repo.postgresql
   -EmployeeRepository.java
   -DepartmentRepository.java

com.x.y.repo.mssql
   -PuchaseRepository.java
   -SalesRepository.java

public interface EmployeeRepository extends R2dbcRepository<Employee, Integer>{

}

public interface PuchaseRepository extends R2dbcRepository<Purchase, Integer>{


}

Выше приведено простое представление моего кода. Мои запросы go до Postgresql всегда, хотя базовый пакет настроен для MS sql пакет com.x.y.repo.mssql

...