2016-05-03 11 views
33

हालांकि नौसिखिया नहीं, मैं यह सुनिश्चित करने के लिए वसंत ढांचे (फिर से!) सीखने की कोशिश कर रहा हूं कि मैं वास्तव में इसे समझता हूं। मुझे कोर स्प्रिंग (डीआई) पर उचित विचार है। अब, मैं डेटा परत पर ध्यान केंद्रित कर रहा हूं।वसंत + हाइबरनेट बनाम वसंत डेटा जेपीए: क्या वे अलग हैं?

मैं "स्प्रिंग और हाइबरनेट" शब्द में आया हूं। जैसा कि मैं व्याख्या कर सकता हूं इसका अर्थ है स्प्रिंग फ्रेमवर्क का उपयोग हाइबरनेट के साथ ओआरएम टूल/जेपीए प्रदाता के रूप में करना होगा।

अब मैं "स्प्रिंग डेटा जेपीए" पर आया हूं। मैंने स्प्रिंग डेटा जेपीए के बारे में एसओ पर स्पष्टीकरण दिया, कि यह जेपीए के शीर्ष पर एक अमूर्त परत है (और हुड के तहत स्प्रिंग डेटा जेपीए हाइबरनेट या किसी अन्य जेपीए प्रदाता का उपयोग करता है)।

अब ये शर्तें समान हैं? यही है, "वसंत + हाइबरनेट" "वसंत डेटा जेपीए" जैसा ही है। यदि नहीं, तो अंतर/समानता क्या है?

मैं वास्तव में समान शब्दों/बयानों (जैसा ऊपर) पर उलझन में हूं, लेकिन यह अलग हो सकता है।

उत्तर

43

स्प्रिंग-डेटा-जेपीए, जैसा कि आप कह रहे हैं, केवल क्लासिकल स्प्रिंग-जेपीए एकीकरण प्रदान करता है। जेपीए/हाइबरनेट एकीकरण के साथ, आप प्राप्त मुख्य रूप से

  • कथात्मक लेनदेन प्रबंधन जेपीए/हाइबरनेट लेनदेन का उपयोग कर
  • अपवाद अनुवाद इंजेक्शन सेम के रूप में
  • जेपीए EntityManager या हाइबरनेट SessionFactory
वसंत के साथ

डेटा-जेपीए, आप सब कुछ प्राप्त करते हैं, प्लस (अन्य चीजों के साथ)

  • इंटरफा ce-केवल खजाने, स्वचालित रूप से
  • @query एनोटेशन प्रश्नों अनुमान लगाने के लिए क्वेरी कि एक इंटरफेस विधि लौटना चाहिए
  • पृष्ठांकन योग्य का स्वत: हैंडलिंग मानक crud खजाने
के लिए
  • आधार वर्ग प्रश्नों को परिभाषित करने के विधि के नाम का उपयोग करते हुए

    यह सिर्फ एक छोटा सा परिचय है। अधिक मदद के लिए, दस्तावेज़ पढ़ें।

  • +2

    धन्यवाद आपके उत्तर के लिए बहुत बहुत उपयोग करने की अनुमति प्रदान करते हैं। तो जब हम "स्प्रिंग + हाइबरनेट" देखते हैं तो इसका मतलब है कि स्प्रिंग डेटा हाइबरनेट का उपयोग कर सीधे होता है, जबकि, जब हम "स्प्रिंग डेटा जेपीए" देखते हैं तो इसका मतलब वसंत डेटा जेपीए अबास्ट्रक्शन और जेपीए प्रदाता का उपयोग करना कुछ भी हो सकता है (जैसे हाइबरनेट, एक्लिपसेलिंक इत्यादि) और वसंत डेटा जेपीए की पेशकश करने के लिए और कुछ है, जिनमें से कुछ आपने पहले ही अपने उत्तर में उल्लेख किया है। – CuriousMind

    +4

    हां। लेकिन आप स्प्रिंग-डेटा-जेपीए के बिना, किसी भी जेपीए प्रदाता के साथ वसंत का उपयोग भी कर सकते हैं। –

    +1

    इस संदेह को स्पष्ट करने के लिए बहुत बहुत धन्यवाद। अपना समय बहुत सराहना करें। – CuriousMind

    5

    जब आप + वसंत के बारे में बात हाइबरनेट

    1. आप पढ़ सकते हैं अकेले हाइबरनेट, आप इसे समझना होगा मानचित्रण का उपयोग करता है (जो मूल रूप से डेटाबेस संबंधों के साथ POJO की मैपिंग के लिए विन्यास) और विन्यास (विन्यास ड्राइवर की तरह डेटाबेस के लिए विशिष्ट कक्षा, यूआरएल, उपयोगकर्ता नाम, पासवर्ड, बोली आदि)।
    2. तो अब यदि आप पढ़ना, लिखना, अपडेट इत्यादि का उपयोग करना चाहते हैं तो आपको hibernatesessionfactory, खुले लेनदेन और प्रतिबद्धता प्राप्त करनी होगी। प्रत्येक ऑपरेशन के लिए बहुत सारे और पोस्ट काम।
    3. जब आप वसंत के साथ हाइबरनेट को एकीकृत करते हैं, वसंत इस कॉन्फ़िगरेशन का उपयोग करता है और इसे एप्लिकेशन संदर्भ में रखता है, और hibernatetemplate रैपर प्रदान करता है जो आंतरिक रूप से hibernatesessionfactory का उपयोग करता है। तो इन परिचालनों को करते समय आपको पूर्व और पोस्ट कोड के बारे में ज्यादा परवाह करने की आवश्यकता नहीं है।
    4. यह प्रदर्शन में सुधार के लिए कैशिंग (प्रथम और द्वितीय स्तर कैश) भी प्रदान करता है।
    5. और आपको एचक्यूएल के साथ काम करने के लिए भी प्रदान करता है जो डेटाबेस से स्वतंत्र है। यह डेटाबेस विशिष्ट एसक्यूएल उत्पन्न करने के लिए डेटाबेस बोली का उपयोग करता है।

    अब वसंत + डेटा जेपीए के बारे में बात करने देता है

    1. यह
    2. तो मान लीजिए कि आप crud आपरेशन करने में रुचि रखते हैं (आम वसंत डेटा, वसंत जेपीए से) आधार भंडार इंटरफेस के साथ आता है, बस का विस्तार crud repository, और वसंत रन टाइम पर इसके कार्यान्वयन को इंजेक्ट करेगा।
    3. आइए कहें कि आप अपने आवेदन के लिए सामान्य विधि को परिभाषित करना चाहते हैं, तो आप इसे नया रिपोजिटरी इंटरफेस बनाकर कर सकते हैं जो Repository इंटरफ़ेस को बढ़ाता है। और एप्लिकेशन में इसका उपयोग कर सकते हैं।
    4. यह भी क्वेरी तरीकों जो आप देशी sql or jpql.
    संबंधित मुद्दे