我正在玩spring-boot
和spring-boot-data-jpa
。我需要@Entity class A {...}
使用hsqlDatasource
和@Entity class B {...}
使用mssqlDatasource
。我怎样才能做到这一点?
我想做这样的事情:
@Repository
@UseDatasource("hsql")
interface A extends CrudRepository....
答案 0 :(得分:2)
Spring Data通过@EnableJpaRepositories(entityManagerFactoryRef=...)
支持此模式。要使它与Spring Boot一起使用,您可以创建2 DataSources
,标记其中一个@Primary
,它将由自动配置的entityManagerFactory
bean使用。然后添加另一个并在2 @EnableJpaRepositories
注释中单独引用它们。
我想您甚至可以为两种存储库类型中的每一种创建一个自定义注释,并在@EnableJpaRepositories(includeFilters=...)
中使用它,但如果我是你,我会首先使用包扫描(即只是放置存储库)对于不同包中的2个数据源目标。)