के बीच अंतर आज मैं हाइबरनेट को ओआरएम के रूप में उपयोग करने का प्रयास कर रहा था। तो मुझे बनाने में संदेह था। उपयोग करने के लिए सबसे अच्छा अभ्यास क्या है, हाइबरनेट मैपिंग फ़ाइल (.hbm फ़ाइल) या एनोटेशन? इसके पेशेवर और विपक्ष क्या हैं? समझने में मेरी मदद करें।हाइबरनेट मैपिंग फ़ाइल और एनोटेशन
उत्तर
- कोई कार्यात्मक अंतर नहीं है। आप एक ही चीजों के साथ क्या कर सकते हैं (लगभग) दोनों दृष्टिकोण से पहले जावा एनोटेशन (1.5 में) जोड़ा था
- एक्सएमएल फ़ाइलें इस्तेमाल किया गया है, ताकि वे
- यह आम तौर पर जेपीए व्याख्या का उपयोग करना पसंद किया जाता है मानचित्रण का एक पुराना तरीका माना जा सकता है हाइबरनेट-विशिष्ट वाले के बजाय;
http://en.wikipedia.org/wiki/Convention_over_configuration
एक्सएमएल फ़ाइलें हैं, जबकि सिर्फ विन्यास: - अगर एक्सएमएल का उपयोग कर वहाँ एक जेपीए XML स्वरूप है, जो देशी हाइबरनेट करने के लिए एक
एनोटेशन विन्यास से अधिक सम्मेलन के सिद्धांत पर आधारित हैं प्राथमिकता दी जानी चाहिए है।
कॉन्फ़िगरेशन का उपयोग करके एनोटेशन का उपयोग करने के बारे में कई चर्चाएं हैं।
देखने की मेरी बात से, मैं एनोटेशन पसंद करते हैं क्योंकि यह लिखने के लिए और बनाए रखने के लिए आसान है।
कॉन्फ़िगरेशन पर सम्मेलन के सिद्धांत के आधार पर मुझे एनोटेशन के साथ सम्मान से असहमत होना होगा। टिप्पणियां बिल्कुल सम्मेलनों के बारे में नहीं हैं। यह एक्सएमएल से कॉन्फ़िगरेशन का एक वैकल्पिक माध्यम है। – M7Jacks
एक्सएमएल दृष्टिकोण का उपयोग करने के लिए एक अच्छा उपयोग-मामला यह है कि यदि आप ऐसी वस्तुओं को बनाए रखते हैं जो किसी अन्य उपयोगिता द्वारा उत्पन्न किए गए हैं और इसलिए एनोटेट नहीं किया जा सकता है।
इसके अलावा, मैं एनोटेशन का उपयोग करता हूं क्योंकि यह स्वयं को क्लीनर कार्यान्वयन में उधार देता है और आप संपत्ति नामों की गलत वर्तनी करके बग पेश करने की संभावना कम करते हैं।
बाहरी स्रोतों से वस्तुओं की दृढ़ता का जिक्र करने के लिए धन्यवाद, इसके बारे में सोचा नहीं था। –
प्रश्न यह है कि आपका स्वाद क्या है - दोनों तरीके (ज्यादातर) समान कर सकते हैं, अंतर यह है कि कैसे लिखना है।
एनोटेशन के साथ आपके पास जावा सदस्य चर/गेटर और मैपिंग सीधे एक स्थान पर है।
एक्सएमएल मैपिंग फाइलें टेबल और उसके मानचित्रण पर एक बेहतर अवलोकन प्रदान करती हैं।
मेरी राय में xml मैपिंग फ़ाइलें डेटाबेस और एप्लिकेशन के बेहतर डिज़ाइन के लिए सहायता करती हैं। एनोनेशंस जावा क्लास -> मैपिंग -> डेटाबेस टेबल, जो गलत दिशा है (डेटाबेस हमेशा पहले डिजाइन किया जाना चाहिए - डेटाबेस डेटाबेस को बाद में बदलना चाहिए बहुत प्रयास है - अधिकांश प्रदर्शन लीक खराब डेटाबेस डिज़ाइन में हैं - जावा कक्षाओं को आसानी से बदला जा सकता है)।
यदि एक्सएमएल फाइलों का एक कार्यात्मक लाभ है: यदि आपके पास संरचनात्मक मतभेदों के साथ अलग-अलग डेटाबेस हैं, उदाहरण के लिए एक ओरेकल डेटाबेस और एक MySQL डेटाबेस, शायद तालिका नामों और डेटा प्रकारों में कुछ अंतर, फिर एक डेटाबेस से अपने एप्लिकेशन को पोर्ट करने के लिए दूसरे को आपको केवल कुछ नई मैपिंग फाइलें लिखनी होंगी। आपको जावा कोड की एक पंक्ति को बदलने की आवश्यकता नहीं है। एनोटेशन के साथ यह संभव नहीं है।
मैं एक्सएमएल मैपिंग फ़ाइलों का उपयोग करना पसंद करता हूं। यह है स्वाद।
यह वह जगह है कि यह कैसे "ट्यूटोरियल सूत्री" में कहते हैं
"आप अन्य EJB 3 अनुरूप ORM आवेदन करने के लिए पोर्टेबल आपके आवेदन करने जा हैं, तो आप मैपिंग जानकारी है लेकिन अभी भी यदि प्रतिनिधित्व करने के लिए एनोटेशन का उपयोग करना चाहिए आप अधिक लचीलापन चाहते हैं तो आपको एक्सएमएल-आधारित मैपिंग्स के साथ जाना चाहिए "
मेरे लिए मैं एनोटेशन की तुलना में एक्सएमएल कॉन्फ़िगरेशन फ़ाइल पसंद करूंगा। क्योंकि तब हम न्यूनतम कोड परिवर्तनों के साथ परिवर्तन कर सकते हैं।
जावा भाषा के साथ एनोटेशन विकसित किए गए हैं और जावा डेवलपर को एक्सएमएल की तुलना में सीखना आसान है। और रीयल टाइम टेबल नामों और कॉलम नामों में एक और बिंदु 99% तय किया गया है, इसलिए जावा कोड को बदलने की कोई आवश्यकता नहीं है लेकिन यदि आप अक्सर टेबल नाम और कॉलम नाम बदलना चाहते हैं तो आप एक्सएमएल अंततः cfg.xml फ़ाइल के साथ स्थानांतरित करेंगे मनानात्मक क्योंकि डेटाबेस बदल सकता है।
हाय, स्टैक ओवरफ्लो में आपका स्वागत है। अपने प्रश्न को समझना वाकई मुश्किल है, क्या आप इसे एक कोड उदाहरण या कुछ अन्य संकेत देने में सुधार कर सकते हैं? –
- 1. हाइबरनेट: फ़ाइलों या एनोटेशन मैपिंग?
- 2. हाइबरनेट एनम मैपिंग एनोटेशन का उपयोग करके
- 3. हाइबरनेट एनोटेशन के साथ मैपिंग एनम प्रकार
- 4. हाइबरनेट/NHibernate मैपिंग फ़ाइल संपादक
- 5. हाइबरनेट: मैपिंग से एनोटेशन तक माइग्रेट करना - क्या एचबीएम और एनोटेशन मिश्रण करना संभव है?
- 6. नाम क्वेरी ज्ञात नहीं - एनोटेशन और हाइबरनेट
- 7. जेपीए कैस्केड एनोटेशन और हाइबरनेट कैस्केड एनोटेशन
- 8. XML मैपिंग फ़ाइल के लिए समेकित @embeddable एनोटेशन Hibernate?
- 9. हाइबरनेट @ अनुमानित मैपिंग
- 10. हाइबरनेट: javax.naming.NoInitialContextException (एनोटेशन के माध्यम से घटक मैपिंग)
- 11. हाइबरनेट एनोटेशन
- 12. हाइबरनेट एनोटेशन या एक्सएमएल कॉन्फ़िगरेशन
- 13. हाइबरनेट 4 एनोटेशन कॉन्फ़िगरेशन
- 14. हाइबरनेट एनम मैपिंग
- 15. हाइबरनेट एनोटेशन संकलन त्रुटि
- 16. हाइबरनेट डीटीओ और मूल्य ऑब्जेक्ट मैपिंग
- 17. हाइबरनेट @ इंडेक्स एनोटेशन
- 18. जेपीए + हाइबरनेट + @ ट्रांज़ेक्शनल एनोटेशन
- 19. पाठ फ़ील्ड हाइबरनेट एनोटेशन
- 20. @ManyToAny एनोटेशन हाइबरनेट
- 21. कैसे हाइबरनेट/जेपीए एनोटेशन
- 22. हाइबरनेट - एनोटेशन और कॉमन्स-एनोटेशन के बीच अंतर?
- 23. मान्य मोबाइल हाइबरनेट एनोटेशन
- 24. हाइबरनेट + स्प्रिंग एमवीसी: ऑब्जेक्ट मैपिंग कॉन्फ़िगरेशन
- 25. वसंत + हाइबरनेट मैपिंग क्लास xml
- 26. हाइबरनेट एनोटेशन प्लेसमेंट प्रश्न
- 27. हाइबरनेट मैपिंग फ़ाइलों में निरंतर
- 28. हाइबरनेट ओरेकल टेबल्स स्पेस एनोटेशन
- 29. एनोटेशन के साथ हाइबरनेट इंटरसेप्टर
- 30. हाइबरनेट एनोटेशन कहां रखा जाए?
एक्सएमएल फाइलें पुरानी नहीं हैं। नया क्या जरूरी नहीं है। – Johanna
"उन्हें माना जा सकता है"। मैंने जोर नहीं दिया कि वे हैं। मैंने यह भी ध्यान दिया कि कोई कार्यात्मक अंतर नहीं है। लेकिन कई मामलों में एनोटेशन बेहतर हैं। – Bozho