2009-02-23 18 views
33

मैं निम्नलिखित जेपीए कार्यान्वयन का इस्तेमाल किया है:जेपीए कार्यान्वयन - कौन सा सबसे अच्छा उपयोग करने के लिए है?

  1. हाइबरनेट,
  2. Toplink,
  3. OpenJPA

उनमें से प्रत्येक अपने स्वयं के शक्तियों और कमजोरियों है। मैंने तीनों में सबसे उन्नत हाइबरनेट पाया, सिवाय इसके कि उसने जेपीए के साथ अपने कुछ एन्हांसमेंट्स को मिश्रित किया जिससे अन्य प्रदाताओं को स्विच करना मुश्किल हो गया। सबसे महत्वपूर्ण बात यह है कि जेपीए की व्याख्या करते समय इसकी क्वेरी पार्सर बहुत अधिक उदार थी। वे हाइबरनेट का समर्थन करने के लिए सही पुस्तकालयों को प्राप्त करना थोड़ा मुश्किल बनाते हैं क्योंकि मुझे यह सभी निर्भरताओं के सही संस्करण प्राप्त करने का प्रयास करने का एक मिशन मिला है।

टॉपलिंक ठीक था, लेकिन यह महसूस कर रहा है कि यह थोड़ा अपंग है क्योंकि ऐसा लगता है कि ओरेकल चाहता है कि आप इसका उपयोग/खरीद लें? उनकी अधिक उन्नत पुस्तकालय। इसे डाउनलोड करने का प्रयास करना भी एक मिशन था क्योंकि आपको इसे एक जार फ़ाइल चलाने के माध्यम से स्थापित करने की आवश्यकता है। मैंने पाया कि यह केवल आधार जेपीए spec लागू किया। जिस कारण से मैंने इसका इस्तेमाल किया था, वह कई पुस्तकालयों का उपयोग करता है जो आमतौर पर अन्य ओपन सोर्स प्रोजेक्ट्स में उपयोग किए जाते हैं, जिन्हें अक्सर क्लासलोर्डर समस्याएं मिलती हैं, खासकर जब जेबॉस

ओपनजेपीए - यह अब तक का सबसे अच्छा दस्तावेज है और यह आसान है डाउनलोड करें और उपयोग करें लेकिन यह बहुत छोटी गाड़ी लगता है। हो सकता है कि यह सिर्फ मेरा कोड है लेकिन कोड मुझे अधिक उन्नत उपयोग मिला जैसे कि कैस्केड टाइप टाइप के साथ OneToMany रिश्तों को बस काम नहीं लग रहा था। माना जाता है कि यह मेरा कोड हो सकता है जो गलत था और मेरे पास एक साफ मामले का परीक्षण करने का समय नहीं था, लेकिन इस तरह की कई घटनाओं ने मुझे इसका इस्तेमाल करने के लिए डर दिया। मुझे उम्मीद है कि यह बेहतर हो जाएगा। समस्या का समाधान करने में मदद करने में इसके त्रुटि संदेश अक्सर बेकार होते हैं।

अन्य पुस्तकालयों ने लोगों का क्या उपयोग किया है और वे कौन से पसंद करते हैं और क्यों?

उत्तर

17

मेरे पास इन कार्यान्वयन के बारे में समान निष्कर्ष थे।

  1. OpenJPA था/लग रहा था गाड़ी

  2. हाइबरनेट पुस्तकालयों की टन था और नहीं लोड हो रहा है सब कुछ आलसी के साथ परेशानी है लग रहा था।

  3. टॉपलिंक मेरी पसंद के रूप में समाप्त हुआ। यह उतना लचीला नहीं था जितना कि हाइबरनेट होता लेकिन यह काम करता है और मुझे कॉमन्स-लॉगिंग इंस्टॉल करने की आवश्यकता नहीं है।

जिसकी मैं कोशिश करूँगा वह जेपीओएक्स है, जिसे हाल ही में datanucleus कर दिया गया है।

+8

EclipseLink उन सभी की तुलना में बेहतर है (imho)। – cletus

+2

ऑब्जेक्ट डीबी के बारे में क्या? www.objectdb.com – user3111525

+1

या ईबीन! http://www.avaje.org/ –

6

व्यक्तिगत रूप से मुझे नहीं लगता कि OpenJPA अभी तक परिपक्व है। अन्य खुले स्रोत पुस्तकालय हैं जो अधिक परिपक्व हैं और मैं उन लोगों का उपयोग करूंगा। ये वे हैं जिन्हें मैं क्रम में मानता हूं:

  1. हाइबरनेट। हाइबरनेट लंबे समय से आसपास रहा है और वास्तव में जावा में ओआरएम के लिए मार्ग प्रशस्त किया है। हाइबरनेट के साथ मेरा एकमात्र मुद्दा लाइसेंसिंग है। यह एलजीपीएल लाइसेंस प्राप्त है जो कुछ वाणिज्यिक कंपनियों को चकित कर सकता है (कारणों से मैं यहां नहीं जाऊंगा)। वैसे भी, अगर एलजीपीएल आपके लिए कोई मुद्दा है, तो शायद स्पष्ट हो जाना अच्छा होगा।

  2. EclipseLink। Eclipselink पर कुछ पृष्ठभूमि।टॉपलिंक अनिवार्य ओपेकल का उनके जेपीए कार्यान्वयन का मुफ्त संस्करण था। एक्लेप्सेलिंक को ओरेकल के पूर्ण उड़ाए गए जेपीए कार्यान्वयन टॉपलिंक से लिया गया था। EclipseLink ग्लासफ़िश v3.0 के लिए जेपीए 2.0 प्रदाता होने जा रहा है, ऐसा लगता है कि सब कुछ Toplink Essentials और EclipseLink से दूर जा रहा है। हालांकि EclipseLink संस्करण केवल 1.0.2 है, उत्पाद अन्य नामों के तहत लंबे समय से आसपास रहा है।

अभी जिस परियोजना पर मैं काम कर रहा हूं वह टॉपलिंक अनिवार्यता पर है लेकिन हम जल्द ही एक्लीप्सेलिंक पर स्विच करने की योजना बना रहे हैं। मैंने पहले उल्लेख किए गए लाइसेंसिंग मुद्दों के लिए हाइबरनेट बाहर था।

+0

कृपया मदद करें http://stackoverflow.com/questions/32252715/java-the-following-listed-types-were-not-enhanced-at-build-time-or- पर स्तरीय लोड –

4

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

कारण? 1) जेपीए बहुत ही है, हाइबरनेट 2 के समान है) कई नौकरी की स्थिति में हाइबरनेट आवश्यकता होती है। मुख्यधारा के उत्पादों के लिए दुबला होना बेहतर है ... मूल रूप से