2014-10-02 178 views
1

我想使用spring data jpa repository。我必須連接到2個數據庫。我已經發現了很多類似的問題。但大多數答案都是使用實體管理器而不是存儲庫。 例如Spring數據庫JPA在兩個數據庫倉庫中使用

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

但我想使用彈簧數據jpa的存儲庫。我如何在applicationContext.xml中進行配置? 我的2個數據庫是MySQL,一個是本地的另一個是遠程服務器。

回答

2

您可以將這些存儲庫分爲不同的包。然後它可以創建兩個數據庫的配置與不同的團隊經理工廠和事務管理器。

例如第一配置:

@Configuration 
@EnableJpaRepositories(basePackages = "com.firstpackage", 
    entityManagerFactoryRef = "entityManagerFactoryDb1", 
    transactionManagerRef = "transactionManagerDb1") 
public class DB1Config { 
    @Bean 
public LocalContainerEntityManagerFactoryBean entityManagerFactoryDb1() { 
    ... 
} 

public JpaTransactionManager transactionManagerDb1() { 
    ... 
} 
public DataSource dataSourceDb11() { 
    ... 
} 

第二配置將是相似的。

你沒有把許多細節問題,但如果你需要切換數據庫爲相同的存儲庫(例如對於不同的語言環境),您可以使用AbstractRoutingDataSource類將定義determineCurrentLookupKey方法。