JPA in Hindi

JPA की यह पोस्ट Java Persistence API की basic और advanced concepts को प्रदान करने के लिए बनाई गयी है. हमारा JPA पोस्ट शुरुआती और पेशेवरों के लिए बनाया गया है. JPA सिर्फ एक विनिर्देश है जो जावा Applications में रिलेशनल डेटा को प्रबंधित करने के लिए Object-relational mapping की सुविधा देता है. यह SQL Statement का उपयोग करने के बजाय ऑब्जेक्ट के साथ सीधे काम करने के लिए एक प्लेटफ़ॉर्म प्रदान करता है।

जावा पर्सिस्टेंस एपीआई (JPA) जावा की एक विशिष्टता है. इसका उपयोग जावा ऑब्जेक्ट और रिलेशनल डेटाबेस के बीच डेटा को बनाए रखने के लिए किया जाता है. JPA ऑब्जेक्ट-ओरिएंटेड डोमेन मॉडल और रिलेशनल डेटाबेस सिस्टम के बीच एक सेतु का काम करता है. जैसा कि जेपीए सिर्फ एक विनिर्देश है, यह स्वयं के द्वारा कोई भी ऑपरेशन नहीं करता है. इसे लागू करने की आवश्यकता है. तो, Hibernate, TopLink और iBatis जैसे ORM उपकरण डेटा दृढ़ता के लिए JPA विनिर्देशों को लागू करते हैं।

Contents

What is JPA in Hindi

JPA (Java Persistence Annotation) जावा का मानक समाधान है जो ऑब्जेक्ट-ओरिएंटेड डोमेन मॉडल और रिलेशनल डेटाबेस सिस्टम के बीच की गैप को भरने का काम करता है. विचार यह है कि जावा कक्षाओं को Relational तालिकाओं और उन कक्षाओं के गुणों को तालिका में पंक्तियों में मैप करना है. यह जावा कोडिंग के समग्र अनुभव के शब्दार्थों को एक ही प्रोग्रामिंग प्रतिमान में दो अलग-अलग तकनीक का सहयोग करके बदलता है. यह लेख एक अवलोकन और जावा में इसके सहायक कार्यान्वयन प्रदान करता है।

रिलेशनल डेटाबेस संभवतः सभी दृढ़ता प्रौद्योगिकियों में सबसे स्थिर हैं जो इसके साथ जुड़े सभी जटिलताओं के बजाय कंप्यूटिंग में उपलब्ध हैं. ऐसा इसलिए है क्योंकि आज भी, तथाकथित “Big data” के युग में, “NoSQL” Relational डेटाबेस लगातार मांग और संपन्नता में हैं. Relational डेटाबेस केवल शब्दों द्वारा नहीं बल्कि वर्षों के माध्यम से अपने अस्तित्व द्वारा स्थिर प्रौद्योगिकी है. NoSQL उद्यम में संरचित डेटा की बड़ी मात्रा से निपटने के लिए अच्छा हो सकता है. लेकिन कई लेन-देन कार्यभार रिलेशनल डेटाबेस के माध्यम से बेहतर तरीके से नियंत्रित किए जाते हैं. इसके अलावा, रिलेशनल डेटाबेस से जुड़े कुछ महान विश्लेषणात्मक उपकरण हैं।

Relational डेटाबेस के साथ संवाद करने के लिए, ANSI ने SQL (संरचित क्वेरी भाषा) नामक भाषा को मानकीकृत किया है. इस भाषा में लिखे गए कथन का उपयोग डेटा को परिभाषित करने और हेरफेर करने के लिए किया जा सकता है. लेकिन, जावा से निपटने में एसक्यूएल की समस्या यह है कि उनके पास एक बेमेल वाक्यविन्यास संरचना है और कोर, अर्थ में बहुत अलग है, एसक्यूएल प्रक्रियात्मक है जबकि जावा ऑब्जेक्ट ओरिएंटेड है. इसलिए, एक कार्य समाधान की मांग की जाती है ताकि जावा ऑब्जेक्ट ओरिएंटेड-वे में बात कर सके और रिलेशनल डेटा बेस अभी भी एक-दूसरे को समझने में सक्षम हो. JPA उस कॉल का उत्तर है और दोनों के बीच कार्य समाधान स्थापित करने के लिए तंत्र प्रदान करता है।

JPA Versions in Hindi

JPA 1.0 का पहला संस्करण 2006 में EJB 3.0 विनिर्देश के एक भाग के रूप में जारी किया गया था. JPA विनिर्देश के तहत जारी किए गए अन्य विकास संस्करण निम्नलिखित हैं: –

JPA 2.0 – यह संस्करण 2009 के आखिरी में जारी किया गया था. इस संस्करण की महत्वपूर्ण विशेषताएं निम्नलिखित हैं −

  • यह मान्यता का समर्थन करता है।
  • यह कैश सपोर्ट की वस्तु को साझा करता है।
  • यह ऑब्जेक्ट-रिलेशनल मैपिंग की कार्यक्षमता का विस्तार करता है।

JPA 2.1 – JPA 2.1 को निम्नलिखित विशेषताओं के साथ 2013 में जारी किया गया था −

  • यह वस्तुओं को लाने की अनुमति देता है।
  • यह स्कीमा उत्पन्न करता है।
  • यह मापदंड अद्यतन / हटाने के लिए समर्थन प्रदान करता है।

JPA 2.2 – JPA 2.2 को 2017 में अनुरक्षण के विकास के रूप में जारी किया गया था, इसकी कुछ महत्वपूर्ण विशेषताएं हैं −

  • यह जावा 8 दिनांक और समय का समर्थन करता है।
  • यह एक क्वेरी परिणाम स्ट्रीम करने की क्षमता प्रदान करता है।
  • यह JPA एनोटेशन को मेटा-एनोटेशन में उपयोग करने की अनुमति देता है।
  • यह @Repeatable एनोटेशन प्रदान करता है जिसका उपयोग तब किया जा सकता है जब हम एक ही एनोटेशन को एक घोषणा या प्रकार के उपयोग के लिए लागू करना चाहते हैं।

JPA Implementation in Hindi

JPA जावा एप्लिकेशन में रिलेशनल डेटा मैनेजमेंट का वर्णन करता है। यह एक विनिर्देश है और इसके कई कार्यान्वयन हैं. कुछ लोकप्रिय कार्यान्वयन हाइबरनेट, एक्लिप्सलिंक और अपाचे ओपनजेपीए हैं. JPA जावा कक्षाओं में या XML कॉन्फ़िगरेशन फ़ाइलों के माध्यम से मेटाडेटा को परिभाषित करता है. हालाँकि, हम मेटाडेटा का वर्णन करने के लिए XML और एनोटेशन दोनों का उपयोग कर सकते हैं। ऐसी स्थिति में, XML कॉन्फ़िगरेशन एनोटेशन को ओवरराइड करता है. यह उचित है क्योंकि एनोटेशन जावा कोड के साथ लिखे गए हैं, जबकि एक्सएमएल कॉन्फ़िगरेशन फाइलें जावा कोड के लिए बाहरी हैं।

इसलिए, बाद में, यदि कोई हो, तो मेटाडेटा में परिवर्तन किए जाने की आवश्यकता है; एनोटेशन-आधारित configuration के मामले में, इसे सीधे जावा कोड एक्सेस की आवश्यकता होती है. यह हमेशा संभव नहीं हो सकता है. ऐसे मामले में, हम XML कोड में नए या बदले गए Metadata configuration को मूल कोड में परिवर्तन के किसी भी संकेत के बिना लिख ​​सकते हैं और अभी भी वांछित प्रभाव डाल सकते हैं. यह XML configuration का उपयोग करने का लाभ है. हालाँकि, एनोटेशन-आधारित configuration उपयोग करने के लिए अधिक सुविधाजनक है और प्रोग्रामर के बीच लोकप्रिय विकल्प है।

JPA का उपयोग करते हुए, आप किसी भी POJO वर्ग को JPA इकाई के रूप में नामित कर सकते हैं – एक जावा ऑब्जेक्ट जिसके नॉनट्रांसफ़िएंट फ़ील्ड को JPA दृढ़ता प्रदाता (या तो जावा EE EJB कंटेनर के भीतर या बाहर) से प्राप्त इकाई प्रबंधक की सेवाओं का उपयोग करके एक रिलेशनल डेटाबेस में रखा जाना चाहिए। एक जावा कंटेनर में एक EJB कंटेनर का)।