अलग-अलग डेटा स्रोत के साथ 2 कॉन्फ़िगरेशन फ़ाइलें बनाएं और इन 2 कॉन्फ़िगरेशन फ़ाइलों में 2 अलग-अलग जेपीए रिपोजिटरी क्लास के लिए अलग-अलग विनिर्देश होंगे। लेकिन एक ही डोमेन क्लास हो सकता है।
step1>आपके गुण फ़ाइल में 2 डेटा स्रोत विवरण हैं।
spring.datasource.url=jdbc:postgresql://localhost:5432/DB2017_test
spring.datasource.username=xxx
spring.datasource.password=xxx
# DB2018 DB - ""
spring.datasource2.url=jdbc:postgresql://localhost:5432/DB2018_test
spring.datasource2.username=xxx
spring.datasource2.password=xxx
step2>फिर पहले डेटा स्रोत के लिए कॉन्फिग फाइल बनाएं
package com.package1;
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "entityManagerFactory",
basePackages = { "com.package1.repo" }
)
public class DB2017Config {
@Primary
@Bean(name = "dataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "entityManagerFactory")
public LocalContainerEntityManagerFactoryBean
entityManagerFactory(
EntityManagerFactoryBuilder builder,
@Qualifier("dataSource") DataSource dataSource
) {
return builder
.dataSource(dataSource)
.packages("com.domain")
.persistenceUnit("foo")
.build();
}
@Primary
@Bean(name = "transactionManager")
public PlatformTransactionManager transactionManager(
@Qualifier("entityManagerFactory") EntityManagerFactory
entityManagerFactory
) {
return new JpaTransactionManager(entityManagerFactory);
}
}
step3> सिमिलरी अन्य डेटा सोर्स के लिए एक और कॉन्फिग फाइल बनाएं,
@EnableJpaRepositories(
entityManagerFactoryRef = "entityManagerFactory",
basePackages = { "com.package2.repo" }
और उपसर्ग बदलें
@ConfigurationProperties(prefix = "spring.datasource2")
अब आपके पास ऊपर बताए अनुसार क्रमशः पैकेज1 और पैकेज2 में 2 समान RequestRepository1 और RequestRepository2 होंगे (basePackages ={ "com.package1.repo" })।
step4>ऑल सेट ऑटोवायर 2 अलग रेपो।
@Autowired
private final RequestRepository1 repo1;
@Autowired
private final RequestRepository2 repo2;
फिर उनका इस्तेमाल करें।
List<Request> listAdesioni = repo1.findByCodiceFiscale(codicefiscale);
List<Request> listAdesioni = repo2.findByCodiceFiscale(codicefiscale);