नीचे अपने आवेदनस्प्रिंग डेटा जेपीए @transactional
नियंत्रक का प्रवाह है - सेवाएं - भंडार
सेवा परत हम @Transactional
एनोटेशन है हम भी jpa:repository
विन्यास जहाँ हम इकाई प्रबंधक और TXN निर्दिष्ट है प्रबंधक।
मेरा संदेह यह है कि मुझे लगता है कि jpa:repositories
में निर्दिष्ट टीएक्सएन प्रबंधक माना जाता है और सेवा परत पर @Transactional
निर्दिष्ट करने का कोई प्रभाव नहीं पड़ता है। उदाहरण के लिए: सेवा परत @Transactional
कस्टम टीएक्सएन प्रबंधक को मैप किया जा सकता है, जहां सेवा द्वारा आवंटित भंडार में एक अलग टीएक्सएन प्रबंधक हो सकता है। उस स्थिति में यह कोई समस्या नहीं पैदा करेगा?
क्या कोई स्पष्ट कर सकता है कि जब हमें jpa भंडार का उपयोग कर रहे हैं तो हमें सेवा परत पर @Transactional
डालने की आवश्यकता है?
लेनदेन को डीएओ परत पर सीमांकित नहीं किया जाना चाहिए: काम की एक इकाई आमतौर पर कई डीएओ का उपयोग करेगी, और एक एकल लेनदेन सेवा विधि द्वारा ऑर्केस्ट्रेट किया जाएगा। आप केवल 2 एक ही लेनदेन प्रबंधकों को परिभाषित क्यों करेंगे? –
हां ... क्योंकि जब आप एकाधिक डेटाबेस कॉल करते हैं तो आप एक लेनदेन नहीं चाहते हैं। इसलिए आपको सेवा स्तर पर शुरू होने वाले लेनदेन की आवश्यकता है। –
सहमत हैं। वर्तमान कार्यान्वयन में एक डिजाइन मुद्दा है। यह सेवा दो अलग-अलग स्कीमा से जुड़े रिपोस्टोरियों को आमंत्रित करती है (ये शुद्ध चयन प्रश्न हैं और जेटीए नहीं हैं) यही कारण है कि जेपीए रिपोजिटरी को विभिन्न इकाई प्रबंधक कारखाने और विभिन्न टीएक्सएन प्रबंधक के साथ कॉन्फ़िगर किया गया है। – lives