多数据库配置与Spring R2DBC始终只使用一个数据库。

huangapple 未分类评论49阅读模式
英文:

MultiDb Configuration with Spring r2dbc always uses only one Database

问题

我有一个简单的多数据库设置,用于尝试使用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 MsSqlConfiguration 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>{

  
}

以上是我代码的简单表示。
尽管已经为mssql包"com.x.y.repo.mssql"配置了basepackage,但我的请求总是发送到Postgresql。

英文:

I have a simple Multi Database setup to try out Multi Database configuration with r2dbc.
However, it is not working as expected, it always uses the first Database.

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

    @Bean(name=&quot;postgresqlConnectionFactory&quot;)
    ConnectionFactory connectionFactory(){
      return ConnectionFactories.get(&quot;r2dbc:postgresql://&lt;host&gt;:5432/&lt;database&gt;&quot;);
    }

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


}


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

    @Bean(name=&quot;mssqlConnectionFactory&quot;)
    ConnectionFactory connectionFactory(){
      return ConnectionFactories.get(&quot;r2dbc:mssql://&lt;host&gt;:1433/&lt;database&gt;&quot;);
    }

    @Bean(name=&quot;mssqlDbClient&quot;)
    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&lt;Employee, Integer&gt;{
  
}

public interface PuchaseRepository extends R2dbcRepository&lt;Purchase, Integer&gt;{

  
}

The above is the simple representation of my code.
My requests go to Postgresql always, though basepackage is configured for mssql package com.x.y.repo.mssql

答案1

得分: 0

不确定您使用的是哪个版本,我在使用最新的Spring Boot 2.4.0-M2/Spring Data R2dbc 1.2.0-M2时也遇到了相同的问题。

在这里使用AbstractR2dbcConfiguration存在问题,请参考此问题。我在同一个应用程序中同时使用了MySQL和Postgres。

我最终通过创建自定义配置并放弃AbstractR2dbcConfiguration来解决了这个问题,参考示例代码

英文:

Not sure which version you are using, I also encountered the same issue when using the latest spring boot 2.4.0-M2/Spring Data R2dbc 1.2.0-M2.

Using AbstractR2dbcConfiguration is problematic here, check this quesiton. I was using MySQL and Postgres in the single application.

I finally resolved it by creating custom config and giving up AbstractR2dbcConfiguration, check the sample codes.

huangapple
  • 本文由 发表于 2020年5月2日 13:33:30
  • 转载请务必保留本文链接:https://java.coder-hub.com/61554939.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定