में स्प्रिंग डेटा कॉन्फ़िगर किए गए इकाई प्रबंधक (फैक्ट्री) तक कैसे पहुंचे I स्प्रिंग डेटा जेपीए रिपोजिटरी के लिए एक कस्टम कार्यान्वयन लिख रहा हूं। तो मेरे पास है:कस्टम कार्यान्वयन
MyEntityRepositoryCustom
=>MyEntityRepositoryUmpl
=> ऊपर इंटरफ़ेस के कार्यान्वयन कस्टम तरीकों के साथ इंटरफेसMyEntityRepository
=> जोJpaRepository
औरMyEntityRepositoryCustom
मेरे समस्या फैली मानक इंटरफेस यह है: MyEntityRepositoryUmpl
के कार्यान्वयन के भीतर मुझे स्प्रिंग डेटा में इंजेक्शन वाले इकाई प्रबंधक तक पहुंचने की आवश्यकता है। इसे कैसे प्राप्त करें? मैं इसे @PersistenceContext
का उपयोग कर इसे प्राप्त करने के लिए उपयोग कर सकता हूं, लेकिन समस्या यह है कि इस भंडार को एक ऐसे अनुप्रयोग में काम करना चाहिए जो एक से अधिक दृढ़ता इकाइयों को स्थापित करता हो। तो, स्प्रिंग को बताने के लिए जो मुझे चाहिए, मुझे @PersistenceContext(unitName="myUnit")
का उपयोग करना होगा। हालांकि, चूंकि मेरी रिपॉजिटरीज को पुन: प्रयोज्य सेवा परत में परिभाषित किया गया है, इसलिए मुझे उस बिंदु पर पता नहीं चल सकता कि दृढ़ता इकाई का नाम क्या होगा जो उच्च-स्तरीय अनुप्रयोग परत को मेरे भंडारों में इंजेक्शन देने के लिए कॉन्फ़िगर किया जाएगा।
दूसरे शब्दों में, मुझे क्या करना होगा कि स्प्रिंग डेटा का उपयोग करने वाले इकाई प्रबंधक तक पहुंचने के लिए, लेकिन एक (इतनी जल्दी नहीं) के बाद स्प्रिंग डेटा जेपीए दस्तावेज को देखने के बाद मुझे इसके लिए कुछ भी नहीं मिला।
सच में, तथ्य यह है कि Impl
कक्षाएं, स्प्रिंग डाटा का पूरी तरह से अनजान हैं, हालांकि में स्प्रिंग डाटा मैनुअल एक ताकत के रूप में वर्णित है, वास्तव में एक जटिलता जब भी आप कुछ है कि आम तौर पर अपने कस्टम में स्प्रिंग डाटा ही द्वारा प्रदान का उपयोग करने की जरूरत है कार्यान्वयन (लगभग हमेशा, मैं कहूंगा ...)।
मैं जानता हूँ कि कैसे कॉन्फ़िगर स्प्रिंग डेटा संग्रह (मैं जावा config पर XML पसंद करते हैं, BTW) करते हैं, समस्या मैं एक कस्टम कार्यान्वयन अंदर से पता नहीं क्या कर सकते हैं स्प्रिंग डाटा को इंजेक्ट किया गया है, जब तक कि मैं "हार्ड कोड" इसमें उस दृढ़ता इकाई का ज्ञान उपयोग में होगा। –