2011-01-09 18 views
11

जावा ईई वेब एप्लिकेशन के बारे में जो एक पूर्ण जावा ईई अनुप्रयोग सर्वर द्वारा सेवा की जा रही है। ग्लासफ़िश, जो सबसे अच्छा ORM समाधान है? ईजेबी 3 या हाइबरनेट 3 और क्यों?ईजेबी 3 या हाइबरनेट 3

+1

कई अन्य दृढ़ समाधान हैं जिनके पास अलग-अलग फायदे हैं; ऐसा लगता है कि आपने उन्हें अपने प्रश्न में अनदेखा कर दिया है, और इसलिए "सर्वश्रेष्ठ" क्या है इसका कोई जवाब मनमाना है। संभवतः सबसे अच्छा क्या है एप्लिकेशन पर निर्भर है, डेवलपर्स जो इसे लिख रहे हैं, और डेटास्टोर का उपयोग किया जा रहा है ... और आपने उन – DataNucleus

उत्तर

27

वे दोनों पूरी तरह से अलग हैं।

EJB3 एक घटक मॉडल है और इसमें स्वयं OR OR के साथ सीधे कुछ भी नहीं है। यह लेनदेन को आसानी से प्रबंधित करने और जेपीए से इकाई प्रबंधक को आसान पहुंच प्रदान करने में मदद करता है, जो जावा ईई में एक मानक ओआरएम समाधान है।

Hibernate (3) वास्तव में एक ओआरएम समाधान है, और ऐसा होता है जो जेपीए लागू करता है।

तो एक और तार्किक सवाल यह है कि मानकीकृत जेपीए इंटरफेस का उपयोग करना है या सीधे हाइबरनेट कोर एपीआई का उपयोग करना है। फिर एक फॉलोअप सवाल यह हो सकता है कि जेपीए स्टैंडअलोन का उपयोग करें या ईजेबी 3 के साथ संयोजन में हो।

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

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

आम तौर पर डेवलपर्स मुख्य रूप से जेपीए पर अपना कोड आधार देते हैं, और फिर कुछ हाइबरनेट विशिष्ट एनोटेशन या एपीआई कॉल का उपयोग करते हैं जहां यह समझ में आता है। 99.99% मामलों में ऐसे मिश्रित एपीआई उपयोग समर्थित हैं।

यह भी ध्यान रखें कि ग्लासफ़िश EclipseLink के साथ बंडल किया गया है, न कि हाइबरनेट के साथ। EclipseLink हाइबरनेट के साथ तुलनीय है लेकिन इसे एक दशक से अधिक समय के साथ भविष्यवाणी करता है। हाइबरनेट ने एक्लिप्ससेंक से बहुत कुछ लिया (जिसे फिर वापस टॉपलिंक कहा जाता है)।

भी देखें इस सवाल का जवाब मैं एक ऐसी ही सवाल को दे दिया: EJB3 (जेपीए) या सीतनिद्रा में होना: Database table access via JPA Vs. EJB in a Web-Application

-1

वे समान हैं; ईजेबी के लिए 3.0 स्पेस ने हाइबरनेट और स्प्रिंग से एक बड़ा सौदा किया।

मेरे पास किसी भी उद्धरण के लिए कोई फर्म मीट्रिक नहीं है, लेकिन मैं कहूंगा कि यदि आप ग्लासफ़िश को गले लगा रहे हैं तो यह मेरी सभी तकनीक का उपयोग करने के लिए मुझे समझ में आता है। एक और निर्भरता क्यों पेश करें? देखें कि ग्लासफ़िश आपके लिए नौकरी कर सकती है या नहीं।

5

आप क्या पूछा जो एपीआई है बेहतर है? मैंने कहा कि क्योंकि आप ईजेबी 3 जेपीए (जो केवल एपीआई है) और हाइबरनेट (जो कार्यान्वयन और एपीआई है) के बारे में पूछ रहे हैं। इस प्रकार सेब से सेब की तुलना करने के लिए आपको एपीआई की तुलना करने की आवश्यकता है। आप मानक (जेपीए) और अधिक शक्तिशाली मालिकाना एपीआई (हाइबरनेट) के बीच चयन करते हैं।

लेकिन जेपीए चुनकर एक और विकल्प बनाना है: इसके कार्यान्वयन के लिए। कार्यान्वयन के लिए हाइबरनेट चुनकर आप मूल रूप से अपने प्रश्न को त्याग सकते हैं क्योंकि जेपीए और हाइबरनेट दोनों उपलब्ध हैं।

तो आपका प्रश्न बदल जाएगा: कौन सा जेपीए कार्यान्वयन मुझे चुनना चाहिए (हाइबरनेट, एक्लिप्ससेंक, ओपनजेपीए, डेटा न्यूक्लियस इत्यादि के बीच)? ...

+0

पर जानकारी प्रदान नहीं की है ध्यान दें कि * ईजेबी 3 (जेपीए) * थोड़ा हो सकता है भ्रामक। यह सुझाव देता है कि जेजेए के लिए ईजेबी 3 एक और नाम है, लेकिन ऐसा नहीं है। यह पहले से ही तकनीकी रूप से ईजेबी 3.0 में एक पूरी तरह से अलग कल्पना था, और इसे ईजेबी के वर्तमान 3.1 संस्करण में औपचारिक रूप दिया गया है। जेपीए तकनीकी रूप से और संगठनात्मक दोनों एक अलग अलग कल्पना नहीं है। आप शर्तों को किसी भी तरह से बदल नहीं सकते हैं। –

+0

मेरा मतलब है एहसान के प्रश्नों में शब्दावली का पालन करना। यद्यपि स्पष्टीकरण के लिए धन्यवाद। – topchef

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