Spring Data JPA在两个数据库存储库中

时间:2014-10-02 06:08:12

标签: mysql spring hibernate jpa repository

我想使用spring数据jpa存储库。我必须连接到2个数据库。我已经发现了很多类似的问题。但大多数答案都使用实体管理器而不是存储库。 例如

@persistenceContext(unitname = "example")
Entitymanager em;

但我想使用spring数据库jpa。如何在applicationContext.xml中配置? 我的2个数据库是MySQL,一个是本地另一个是远程服务器。

1 个答案:

答案 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方法。