"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं एकाधिक डेटा स्रोतों से कनेक्ट करने के लिए स्प्रिंग बूट और स्प्रिंग डेटा जेपीए का उपयोग कैसे कर सकता हूं?

मैं एकाधिक डेटा स्रोतों से कनेक्ट करने के लिए स्प्रिंग बूट और स्प्रिंग डेटा जेपीए का उपयोग कैसे कर सकता हूं?

2024-10-31 को प्रकाशित
ब्राउज़ करें:516

How can I use Spring Boot and Spring Data JPA to connect to multiple data sources?

स्प्रिंग बूट, एकाधिक डेटा स्रोतों के साथ स्प्रिंग डेटा जेपीए

स्प्रिंग बूट और स्प्रिंग डेटा जेपीए का उपयोग कई डेटा स्रोतों से कनेक्ट करने के लिए किया जा सकता है। ऐसा करने के लिए, आप अपने रिपॉजिटरी के लिए बेस पैकेज निर्दिष्ट करने के लिए @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);

    // ...
}

अपवाद

यदि आपको एकाधिक डेटा स्रोतों से कनेक्ट करने का प्रयास करते समय अपवाद मिल रहे हैं, तो निम्नलिखित की जांच करना महत्वपूर्ण है:

  • सुनिश्चित करें कि @EnableJpaRepositories और @EnableTransactionManagement एनोटेशन आपके कॉन्फ़िगरेशन वर्गों में मौजूद हैं। समस्या का कारण क्या है यह निर्धारित करने के लिए बारीकी से संदेश भेजें।
विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729758348 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3