अंतर हाइबरनेट और जेपीए के बीच समान है, बल्कि जेपीए केवल एक विनिर्देश है, जिसका अर्थ है कि कोई कार्यान्वयन नहीं है, और हाइबरनेट एक कार्यान्वयन है।
आप जेपीए एनोटेशन के साथ अपनी कक्षाएं एनोटेट कर सकते हैं, लेकिन कार्यान्वयन के बिना कुछ भी नहीं होगा।
एक संक्षिप्त तरीके से आप दिशानिर्देशों के रूप में "जेपीए" पर विचार कर सकते हैं।
जब आप जेपीए के साथ हाइबरनेट का उपयोग करते हैं तो आप वास्तव में जेपीए कार्यान्वयन द्वारा हाइबरनेट का उपयोग कर रहे हैं। लाभ यह है कि आप जेपीए विनिर्देश (ग्रहण लिंक, डेटा न्यूक्लियस, ..) के किसी अन्य कार्यान्वयन के लिए जेपीए के हाइबरनेट के कार्यान्वयन को स्वैप कर सकते हैं, यदि आप सीधे हाइबरनेट का उपयोग करते हैं तो आप केवल दूसरे ओआरएम पर स्विच नहीं कर सकते हैं।
मुझे आशा है कि यह सहायक होगा।
जेपीए एक ORM कार्यान्वयन नहीं है लेकिन सिर्फ वस्तु संबंधपरक मानचित्रण (ORM) को लागू करने के दिशा-निर्देशों का है और वहाँ लागू करने के लिए कोई अंतर्निहित कोड है। यह आपके आवेदन के लिए कोई ठोस कार्यक्षमता प्रदान नहीं करेगा। इसका उद्देश्य नियमों और दिशानिर्देशों का एक सेट प्रदान करना है जिसके बाद जेपीए कार्यान्वयन विक्रेताओं द्वारा मानकीकृत तरीके से एक ओआरएम कार्यान्वयन तैयार किया जा सकता है।
हाइबरनेट एक जेपीए प्रदाता है। जब विनिर्देश में नए बदलाव होते हैं, तो हाइबरनेट जेपीए विनिर्देश के लिए अपने अद्यतन कार्यान्वयन को जारी करेगा। अन्य लोकप्रिय जेपीए प्रदाता ग्रहण लिंक (संदर्भ कार्यान्वयन), ओपनजेपीए आदि हैं।See Other provider here
@javax.persistence.Entity
एक प्रदाता है कि जेपीए दिशानिर्देश
@org.hibernate.annotations.Entity
लागू करता है के लिए एक दिशानिर्देश के एक हाइबरनेट ORM
के लिए क्रियान्वयन की है इसके अलावा आप कर सकते हैं see this other topic
यह एसओ पोस्ट दो एनोटेशन के बीच अंतर बताता है और क्यों आपका मैपिंग नहीं मिला: http://stackoverflow.com/questions/955515/difference-between-jpa-entity-and-hibernate-entity –
और हाइबरनेट इकाई बहिष्कृत है इसलिए आपको इसका उपयोग नहीं करना चाहिए FWIW; –