2013-10-06 4 views
12

मैं एक नई वेब प्रोजेक्ट शुरू कर रहा हूं और मैंने जेपीए को अपने दृढ़ता ओआरएम इंजन के रूप में चुना है।हाइबरनेट बनाम एक्लिप्ससेंक

हालांकि मैंने अपनी आखिरी परियोजना में ओपनजेपीए का उपयोग किया है, अब मैं एक्लिप्ससेंक का उपयोग करना चाहता हूं।

क्यों? यह जेपीए संदर्भ कार्यान्वयन है, इसमें ग्रहण आईडीई में बहुत सारे दस्तावेज और बहुत अच्छे समर्थन हैं। इसके अलावा, मुझे कोई बेंचमार्क नहीं मिला है जो उनमें से कोई भी सर्वश्रेष्ठ नहीं घोषित करता है, इसलिए प्रदर्शन एक कारक नहीं है (सभी कार्यान्वयनों के अपने स्वयं के ताकत बिंदु हैं)।

लेकिन, मैं जेएसआर -303 सत्यापन नमूना का उपयोग करना चाहता हूं, और मैंने हाइबरनेट-सत्यापनकर्ता चुना है (चुड़ैल बीन सत्यापन नमूना का संदर्भ कार्यान्वयन है)।

इसके अलावा, मैं वसंत का उपयोग कर रहा हूं, और वसंत + हाइबरनेट के साथ कई उदाहरण हैं, लेकिन मुझे कोई राय नहीं मिली है कि स्प्रिंग हाइबरनेट के साथ बेहतर है।

क्या इन दो कार्यान्वयनों को मिलाकर कोई समस्या है? हाइबरनेट बीन सत्यापन के साथ हाइबरनेट जेपीए का उपयोग करना बेहतर होगा?

+2

मैंने स्प्रिंग के साथ संयोजन में कभी कोशिश नहीं की - लेकिन ग्लासफ़िश में हाइबरनेट बीन सत्यापन और ग्रहण लिंक का उपयोग किया जाता है .... इसलिए प्रयोज्यता साबित हुई है। मैं भी * eclipse लिंक को हाइबरनेट करने के लिए पसंद करता हूं क्योंकि यह आलसी लोडिंग के लिए स्वचालित रूप से एक विस्तारित खुले सत्र का समर्थन करता है। – cljk

+0

सभी जेपीए 2 कार्यान्वयन (यदि अनुपालन) किसी भी बीन सत्यापन कार्यान्वयन के उपयोग की अनुमति देगा। और यदि कुछ "संदर्भ कार्यान्वयन" है तो इसका अर्थ यह है कि यह साबित करने के तरीके के रूप में प्रयोग किया जाता था कि जेपीए स्पेक लागू करने योग्य है ... * और कुछ नहीं *। – DataNucleus

+0

जेपीए के लिए हाइबरनेट या ग्रहण लिंक का संभावित डुप्लिकेट?] (Http://stackoverflow.com/questions/3234829/hibernate-or-eclipselink-for-jpa) – Dinei

उत्तर

9

मैं वसंत और Hibernate-validation-4.2.0.Final के साथ जेपीए के EclipseLink कार्यान्वयन का उपयोग कर रहा हूं। और अब तक कोई समस्या नहीं है। अब अपने प्रश्न का उत्तर देने के लिए:

क्या इन दो कार्यान्वयनों में कोई समस्या है?

मुझे नहीं लगता कि एक साथ JSR-303 मान्यता कल्पना के लिए Hibernate कार्यान्वयन के साथ EclipseLink जेपीए कार्यान्वयन का उपयोग किसी भी समस्या, के रूप में इन दो विनिर्देशों के प्रयोजन के अलग हैं वहाँ हो जाएगा:

  • JSR 303 - बीन सत्यापन - इकाई सत्यापन के लिए मेटाडेटा मॉडल और एपीआई परिभाषित करता है। यह एक विशिष्ट अनुप्रयोग स्तर या प्रोग्रामिंग मॉडल से बंधे नहीं है।
  • जेपीए - यह जावा ईई और जावा एसई के साथ दृढ़ता और ऑब्जेक्ट/रिलेशनल मैपिंग के प्रबंधन के लिए जावा एपीआई का विनिर्देश है।

स्प्रिंग JSR-303 बीन मान्यता एपीआई के लिए पूरा समर्थन प्रदान करता है। आपको केवल जेएसआर -303 प्रदाता होना चाहिए, जैसे कि हाइबरनेट वैलिडेटर, क्लासपाथ में मौजूद है और स्वचालित रूप से पता लगाया जाएगा।

और स्प्रिंग जेपीए, org.springframework.orm.jpa पैकेज के तहत उपलब्ध है, Java Persistence API के लिए Hibernate के साथ एकीकरण के लिए समान समर्थन प्रदान करता है।

संबंधित मुद्दे