स्प्रिंग बूट और स्प्रिंग डेटा जेपीए का उपयोग कई डेटा स्रोतों से कनेक्ट करने के लिए किया जा सकता है। ऐसा करने के लिए, आप अपने रिपॉजिटरी के लिए बेस पैकेज निर्दिष्ट करने के लिए @EnableJpaRepositories एनोटेशन और लेनदेन प्रबंधन को सक्षम करने के लिए @EnableTransactionManagement एनोटेशन का उपयोग कर सकते हैं। फिर आप प्रत्येक विधि के लिए किस डेटा स्रोत का उपयोग करना है यह निर्दिष्ट करने के लिए अपने रिपॉजिटरी तरीकों पर @Transactional एनोटेशन का उपयोग कर सकते हैं।
उदाहरण के लिए, निम्नलिखित कोड दिखाता है कि दो डेटा स्रोतों से कनेक्ट करने के लिए स्प्रिंग बूट को कैसे कॉन्फ़िगर किया जाए:
@Configuration
@EnableJpaRepositories(
entityManagerFactoryRef = "orderEntityManager",
transactionManagerRef = "orderTransactionManager",
basePackages = {"com.mm.repository.customer"})
public class CustomerDbConfig {
@Bean(name = "customerEntityManager")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(){
// ...
}
// ...
}
@Configuration
@EnableJpaRepositories(
entityManagerFactoryRef = "orderEntityManager",
transactionManagerRef = "orderTransactionManager",
basePackages = {"com.mm.repository.order"})
public class OrderDbConfig {
@Bean(name = "orderEntityManager")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(){
// ...
}
// ...
}
यह कोड दो EntityManagerFactory बीन्स बनाएगा, प्रत्येक डेटा स्रोत के लिए एक। रिपॉजिटरी विधियों पर @Transactional एनोटेशन तब निर्दिष्ट करेगा कि प्रत्येक विधि के लिए किस EntityManagerFactory का उपयोग करना है। उदाहरण के लिए, निम्नलिखित कोड दिखाता है कि @Transactional एनोटेशन का उपयोग कैसे करें ताकि यह निर्दिष्ट किया जा सके कि खोज ग्राहक विधि को customerEntityManager बीन का उपयोग करना चाहिए:
@Repository
public interface CustomerRepository {
@Transactional(value = "customerEntityManager")
Customer findCustomer(Integer id);
// ...
}
यदि आपको एकाधिक डेटा स्रोतों से कनेक्ट करने का प्रयास करते समय अपवाद मिल रहे हैं, तो निम्नलिखित की जांच करना महत्वपूर्ण है:
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3