2010-07-13 12 views
20

मैं सोच रहा था कि क्या किसी भी ढांचे के जेपीए 2.0 कार्यान्वयन के साथ किसी को अनुभव है? विशेष रूप से Spring3.x के साथ जो EclipseLink समर्थन के साथ आता है।जेपीए के लिए हाइबरनेट या ग्रहण लिंक?

क्या आप उत्पादन के लिए इनमें से किसी भी ढांचे और जेपीए 2.0 का उपयोग करते हैं? कोई भी गंभीर मुद्दे?

उत्तर

16

IMHO जहां संभव हो वहां मानक एपीआई का उपयोग करना हमेशा बेहतर होता है। आपका खुद का उदाहरण यह पूरी तरह से दिखाता है। जब आप उम्मीद के अनुसार काम करने में विफल रहे तो आप दो प्रदाताओं पर अपने समान कोड को आजमा सकते थे। किसी भी देशी एपीआई पर स्विच करने से आपको ऐसा करने से रोकता है।

यदि आपके जेपीए 2.0 प्रदाता के रूप में एक्लिप्ससेंक का उपयोग करना आपके लिए अच्छा काम करता है, तो इसका उपयोग करें। यदि आप किसी समस्या में भाग लेने के लिए होते हैं, तो EclipseLink बग फ़ाइल करें, और इस फ़ोरम, या EclipseLink फ़ोरम और समाचार समूह पर सहायता प्राप्त करें।

23

एक्लिप्ससेंक अधिक मानकों का अनुपालन है, क्योंकि यह जेपीए 2 के संदर्भ में कार्यान्वयन है, हाइबरनेट में कुछ शिकायतें हैं, लेकिन यह अधिक परिपक्व है।

ईक्लीप्स लिंक के मुख्य लाभों में से एक यह है कि आप मूल रूप से अपने जेपीक्यूएल प्रश्नों में मूल एसक्यूएल फ़ंक्शंस को कॉल कर सकते हैं। हाइबरनेट में यह सीधे संभव नहीं है।

लेकिन हाइबरनेट के पास एक बड़ा समुदाय, बेहतर प्रलेखन और बेहतर त्रुटि संदेश भी हैं।

+1

मैं असहमत हूं। आरआई होने के कारण आपको अधिक अनुपालन नहीं होता है और मुझे दोनों कार्यान्वयन के साथ समस्या का सामना करना पड़ा है, हालांकि उन्हें जेपीए 2.0 अनुपालन माना जाता है, [उदाहरण के लिए यह प्रश्न] देखें (http://stackoverflow.com/questions/3014313/jpa -2-मापदंड-api-क्यों-है-isnull से किया जा रहा नज़रंदाज़-जब-इन-संयोजन के रूप-साथ-बराबर)। टीकेसी सिर्फ पूर्ण नहीं है। –

+0

@ पास्कल-थिवेंट, एक्लिप्ससेंक का जेपीक्यूएल कार्यान्वयन वास्तव में हाइबरनेट की तुलना में अधिक मानकों का अनुपालन करता है। और आरआई होने से आपको किसी प्रकार की संदर्भ स्थिति में डाल दिया जाता है। –

+0

चूंकि मुझे दोनों के साथ अनुपालन के मुद्दों का सामना करना पड़ा है, मेरा संदर्भ कल्पना है, मैंने सीखा है कि मैं ग्रहण लिंक को "संदर्भ" के रूप में उपयोग नहीं कर सकता। –

4

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

उत्पादन में, मैं इस कारण से केवल हाइबरनेट ले जाऊंगा।

0

बस एक के साथ उठाओ और छड़ी। मानक केवल अंत दिशानिर्देशों में हैं और प्रत्येक कार्यान्वयन तदनुसार मानकों को लागू करने में विफल या विफल हो सकता है।

उदा।

  • EclipseLink ऐसे जेपीए के रूप में कुछ बुनियादी का उपयोग कर संबंधी समस्याएं हो सकती @Converter रों माना जाता है कि हाल ही में आईबीएम के माध्यम से तय हो गई है, हालांकि http://www-01.ibm.com/support/docview.wss?uid=swg1PI73277

  • हाइबरनेट के JPQL कार्यान्वयन बूलियन मूल्यों है कि अपने दम पर खड़े नहीं समझती अधिक विशेष रूप से मैं बदलना पड़ा अपना JPQL कहना

    from Participant p where not p.cancelled

    करने के लिए

    from Participant p where p.cancelled = false

दूसरी बात आप वसंत में चीजों का निर्माण कर रहे हैं और आप की संभावना PARENT_LAST क्रम में वर्ग लोडर को बदलने के अनुचित लेकिन आम तरीका क्या करने जा रहे हैं ताकि अपनी कक्षाओं के बजाय उपयोग किया जाता है है आवेदन सर्वर

यदि आप उचित तरीके से करने की योजना बनाते हैं और जेपीए का उपयोग करते हैं जो एप्लिकेशन सर्वर के साथ आता है तो बस थोड़ा सावधान रहें कि आपका एप्लीकेशन सर्वर कार्यान्वयन खराब हो सकता है।

लेनदेन आपके आवेदन के अनुसार, विशेष रूप से वसंत को आपके लिए चीजों को संभालना चाहिए।

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