我想使用spring数据jpa存储库。我必须连接到2个数据库。我已经发现了很多类似的问题。但大多数答案都使用实体管理器而不是存储库。 例如
@persistenceContext(unitname = "example")
Entitymanager em;
但我想使用spring数据库jpa。如何在applicationContext.xml中配置? 我的2个数据库是MySQL,一个是本地另一个是远程服务器。
答案 0 :(得分:2)
您可以在不同的包中分隔这些存储库。然后可以使用不同的enity manager工厂和事务管理器创建两个DB配置。
例如first config:
@Configuration
@EnableJpaRepositories(basePackages = "com.firstpackage",
entityManagerFactoryRef = "entityManagerFactoryDb1",
transactionManagerRef = "transactionManagerDb1")
public class DB1Config {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactoryDb1() {
...
}
public JpaTransactionManager transactionManagerDb1() {
...
}
public DataSource dataSourceDb11() {
...
}
第二个配置类似。
您没有提出许多详细信息,但是如果您需要切换相同存储库的数据库(例如,针对不同的语言环境),您可以使用AbstractRoutingDataSource类来定义determineCurrentLookupKey方法。