Spring启动数据hibernate不同的数据源

时间:2014-05-11 09:15:09

标签: hibernate jpa-2.0 spring-data-jpa spring-boot spring-4

我正在玩spring-bootspring-boot-data-jpa。我需要@Entity class A {...}使用hsqlDatasource@Entity class B {...}使用mssqlDatasource。我怎样才能做到这一点?

我想做这样的事情:

@Repository
@UseDatasource("hsql")
interface A extends CrudRepository....

1 个答案:

答案 0 :(得分:2)

Spring Data通过@EnableJpaRepositories(entityManagerFactoryRef=...)支持此模式。要使它与Spring Boot一起使用,您可以创建2 DataSources,标记其中一个@Primary,它将由自动配置的entityManagerFactory bean使用。然后添加另一个并在2 @EnableJpaRepositories注释中单独引用它们。

我想您甚至可以为两种存储库类型中的每一种创建一个自定义注释,并在@EnableJpaRepositories(includeFilters=...)中使用它,但如果我是你,我会首先使用包扫描(即只是放置存储库)对于不同包中的2个数据源目标。)