【发布时间】:2020-05-02 05:33:30
【问题描述】:
我有一个简单的多数据库设置来尝试使用 r2dbc 进行多数据库配置。 但是,它没有按预期工作,它总是使用第一个数据库。
@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>{
}
以上是我的代码的简单表示。
我的请求总是发送到 Postgresql,尽管 basepackage 配置为 mssql 包 com.x.y.repo.mssql
【问题讨论】:
-
我认为这不值得作为答案,但这是一个可怕的错误。
basePackages值存在拼写错误。我假设如果提供了不存在的包,将引发警告或错误。但是,没有错误。由于这是一个多数据库配置,它已将所有存储库静默分配给默认存储库。必须启用调试日志并识别此零存储库找到消息。
标签: java spring-data spring-data-r2dbc