2012-06-06 17 views
6

AFAIK, नवीनतम और महानतम जो मैं उपयोग कर रहा हूं वह जेपीए 2.0 है।क्या जेपीए 3 के रूप में ऐसा कोई संस्करण है?

मुझे लगता है कि जीएई के पास कुछ जार है जिसे कुछ हद तक ऐपेंगीन-जावा-एसडीके-1.6.5/lib/user/orm/geronimo-jpa_3.0_spec-1.1.1.jar कहा जाता है। मुझे इस धारणा का सामना करना पड़ रहा है कि जीएई के पास हमेशा नवीनतम, सबसे बड़े रक्तस्राव किनारे प्रोटोकॉल के साथ संगतता को अपनाने में विलंबता है। जेपीए 2.0 को अपनाने में उन्हें कुछ समय लगा।

जीएई एसडीके libs के अंदर जेपीए 3.0 जार क्या कर रहा है? क्या जेपीए 3.0 के रूप में ऐसा संस्करण है? क्या Google इस बार हमें हर किसी के आगे एक नया संस्करण प्रोटोकॉल लागू करके एक-एक करके बढ़ा रहा है? क्या कोई जेपीए 3.0 spec या संदर्भ इम्प्ल है जहां मैं संदर्भित कर सकता हूं?

मैं वर्तमान में एक ईजेबी व्यक्ति नहीं हूं (माफ करना ... मैंने कभी भी ईजेबी से बचने का फैसला किया था क्योंकि 10 साल पहले ईजेबी 1.0 के साथ मुझे बुरा अनुभव था)।

  • EJB 3.0 जेपीए 2.0 का पर्याय बन गया,
  • है या जेपीए 2.0 EJB 3.0
  • के एक सबसेट के रूप में अपनाया गया है या जेपीए 3.0 = EJB 3.0 है?

WRT इस सवाल मैंने पूछा: moving from Hibernate entitymanager 3.6.9 to 4.1.2 crashed mysql connection, किसी भी तरह जेपीए 3.0 या 2.0 की तुलना में एक जेपीए संस्करण कम से कम बाद में करने के लिए संबंधित हाइबरनेट इकाई प्रबंधक 4.x है? मुझे हाइबरनेट इकाई-प्रबंधक 3.x और 4.x के बीच महत्वपूर्ण अंतर का सामना करना पड़ रहा है (और अब तक 4.x को तैनात करने से बचा है)।

मुझे एहसास है कि यह प्रश्न स्वयं भ्रमित है और शायद मुझे प्रत्येक आइटम को व्यक्तिगत प्रश्न के रूप में पूछा जाना चाहिए था, लेकिन मुझे उम्मीद है कि कोई भी इन सभी को एक ही थीसिस में जोड़ सकता है: ejb 3, JPA 2/3, geronimo, hibernate ent-mgr 3/4। धन्यवाद।

उत्तर

7

कोई जेपीए 3 के रूप में ऐसी कोई चीज़ नहीं है (जून 2012 में)। जेपीए 1, जेपीए 2, और (योजना में) जेपीए 2.1 है। वह जेरोनीमो-चश्मा जार वास्तव में जेपीए 1 के लिए है, लेकिन कुछ बहुत शॉर्ट्ससाइट व्यक्ति/समूह ने इसका नाम देने का फैसला किया है, और अब इसके परिणाम देख रहे हैं।

तुम कहो GAE पहले से ही JPA2 का समर्थन करता है, Maven खजाने से के रूप में उपलब्ध हैं या यहाँ http://code.google.com/p/datanucleus-appengine/ और कहा कि एक संगत जेपीए-api वी 2 जार (जैसे Geronimo-jpa_2.0_spec के रूप में) के साथ काम करता उनकी जेपीए प्लगइन का v2.x का उपयोग कर।

1

मैं यहां सुधार के तहत बोल रहा हूं क्योंकि चीजें बदल सकती हैं क्योंकि मैंने पिछली बार जेपीए के साथ गंभीरता से काम किया था। हालांकि मेरी समझ से जेपीए 2 वर्तमान विनिर्देश है। मुझे संदेह है कि आपके द्वारा उल्लिखित जार एक जेपीए 2 विनिर्देश है। 2011 में Geronimo उस बिंदु पर बॉक्स के बाहर जेपीए 2 का समर्थन नहीं किया था।

जहाँ तक EJB के और जेपीए का संबंध है के रूप में:

  1. दोनों EJB और जेपीए POJO के आधार पर कर रहे (प्लेन ओल्ड जावा ऑब्जेक्ट)।
  2. जेपीए कक्षाएं अनिवार्य रूप से एक डेटा एक्सेस लेयर तकनीक है जिसका उपयोग आपकी डेटा परत से बातचीत करने के लिए किया जाता है।
  3. ईजेबी अनिवार्य रूप से एक व्यापार परत के लिए उपयोग किया जाता है। इसमें विभिन्न जेपीए कक्षाओं के बीच व्यापार तर्क और ऑर्केस्ट्रेट बातचीत होगी। उदाहरण के लिए जेपीए में आपके पास एक ग्राहक वर्ग (जो ग्राहक तालिका के साथ इंटरैक्ट करता है) और ऑर्डर क्लास (जो ऑर्डर तालिका के साथ इंटरैक्ट करता है) हो सकता है। अपने ईजेबी में आप इन दोनों वर्गों का उपयोग किसी विशेष ग्राहक के लिए नया ऑर्डर बनाने के लिए करेंगे।

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

यह अंतरों का एक बहुत ही सरल व्याख्या है और यह विषय वास्तव में गहरा है लेकिन इन बिंदुओं से आप दोनों के बीच अंतर करने में मदद कर सकते हैं।

जिस तरह से नया ईजेबी विनिर्देश वास्तव में बीन्स का उपयोग, विकास और तैनाती के लिए बहुत आसान बनाता है। मैं भाग्यशाली हूं कि उन सभी वर्षों पहले मैंने मूल विनिर्देश को याद किया था। वर्तमान में वे उपयोग करने में बहुत आसान हैं।

उम्मीद है कि यह धुंध को थोड़ा सा साफ़ करने में मदद करता है।

7

जैसा कि अन्य ने कहा है, जेपीए 2.0 वर्तमान संस्करण (जावा ईई 6 का हिस्सा) है और अगला संस्करण जेपीए 2.1 होगा जो वर्तमान में विनिर्देशन (JSR 338) में है और जावा ईई 7 में शामिल किया जा रहा है। अभी तक कोई जेपीए 3 नहीं है, ताकि जार का बुरी तरह बुलाया जा सके।

जेपीए 1.0 जावा ईई 5 के हिस्से के रूप में पेश किया गया था, जो ईजेबी विनिर्देश से दृढ़ता भाग को विभाजित करता था (इसलिए जावा ईई 5 ने ईजेबी 3.0 और जेपीए 1.0 पेश किया, कोई और इकाई बीन्स, हाँ!)। जावा ईई 6 में ईजेबी 3.1 और जेपीए 2.0 शामिल थे।

जावा ईई 7 में EJB 3.2 और जेपीए 2.1 शामिल होंगे।

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