One db connects abc database and second db connects xyz database.
I created a configuration file for each datasource wherein i will declare the datasource, entitymanager and trasactionmanager for each database as well as the packages which will refer these .
@Configuration
@EnableJpaRepositories(basePackages = {
“com.abc.payment”}, entityManagerFactoryRef = “abcEntityManager”, transactionManagerRef = “abcTransactionManager”)
public class AbcDataSouceConfig {
@Bean(name = "datasource")
@Primary
public DataSource dbDataSource() {
}
@Bean(name = "abcTransactionManager")
@Primary
public PlatformTransactionManager dbTransactionManager() {
}
@Bean(name = "abcEntityManager")
@Primary
public LocalContainerEntityManagerFactoryBean dbEntityManager() {
}
}
The above AbcDataSouceConfig file has my primary datasouce configs for package “com.abc.payment” and as below i have created one more XYZDataSouceConfig which declares a different datasource configs for a different package “com.abc.order”
@Configuration
@EnableJpaRepositories(basePackages = {
“com.abc.order”}, entityManagerFactoryRef = “xyzEntityManager”, transactionManagerRef = “xyzTransactionManager”)
public class XYZDataSouceConfig {
@Bean(name = "datasource")
public DataSource dbDataSource() {
}
@Bean(name = "xyzTransactionManager")
public PlatformTransactionManager dbTransactionManager() {
}
@Bean(name = "xyzEntityManager")
public LocalContainerEntityManagerFactoryBean dbEntityManager() {
}
}