私は、各JpaRepositoriesに特定のデータソースを割り当てることを試みている2つのデータソースを持っています。私は春のブートフレームワークを使用しています。プライマリデータソースは約90%の時間使用されますが、セカンダリデータソースは約10%使用されるので、プライマリデータソースにデフォルトし、必要な場合にのみセカンダリデータソースを割り当ててください。私はここでドキュメントhttps://docs.spring.io/spring-boot/docs/current/reference/html/howto-data-access.htmlを使用してみましたが、私は正確に私が必要と思ういけない。すべてのヒントは素晴らしいだろう!スプリングブート特定のデータソースをJpaRepositoryに割り当てます。
spring.datasource.configuration.url=jdbc:postgresql://localhost:5432/mydatabase
spring.datasource.configuration.username=dockerusername
spring.datasource.configuration.password=dockerpassword
spring.datasource.configuration.driver-class-name=org.postgresql.Driver
spring.datasource.cached.url=jdbc:hsqldb:mem:main
spring.datasource.cached.driver-class-name=org.hsqldb.jdbc.JDBCDriver
spring.datasource.initialize=false
spring.jpa.database=default
spring.jpa.hibernate.ddl-auto=update
設定ファイル
@Configuration
@ComponentScan({"com.praeses.gov"})
public class Config {
@Bean
@ConfigurationProperties("spring.datasource.configuration")
public DataSourceProperties configDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@ConfigurationProperties("spring.datasource.configuration")
public DataSource configDataSource() {
return configDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
@Primary
@ConfigurationProperties("spring.datasource.cached")
public DataSourceProperties cachedDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
@ConfigurationProperties("spring.datasource.cached")
public DataSource cachedDataSource() {
return cachedDataSourceProperties().initializeDataSourceBuilder().build();
}
あなたが同様の行に何かを行うことができます主なデータソースを使用してリポジトリ
@Qualifier("spring.datasource.cached")
@Repository("spring.datasource.cached")
public interface GeoitemRepository extends JpaRepository<Geoitem, String> {
}
二次データソースを使用してリポジトリ
@Qualifier("spring.datasource.configuration")
@Repository("spring.datasource.configuration")
public interface GeoitemhistoryRepository extends JpaRepository<Geoitemhistory, String> {
}