2010-09-02 18 views
5

मैंने कई ट्यूटोरियल देखे हैं जहां हाइबरनेट एनोटेशन (मूल रूप से एनोटेशन एनपीएशन या जेपीए एनोटेशन) का उपयोग करके कार्यान्वित किया जाता है। ऐसे ट्यूटोरियल हैं जो मुख्य रूप से हाइबरनेट कॉन्फ़िगरेशन फ़ाइलों (hbm.xml फ़ाइलों) का उपयोग करने पर केंद्रित हैं। एनोटेशन का कोई उपयोग नहीं।एनोटेशन का उपयोग करके या हाइबरनेट कॉन्फ़िगरेशन फ़ाइलों का उपयोग करके हाइबरनेट

अब मैं थोड़ा उलझन में हूं, कौन सा बेहतर दृष्टिकोण है?

उत्तर

8

मैं निश्चित रूप से अपने मैपिंग मेटाडेटा को परिभाषित करने के लिए एनोटेशन का उपयोग करना पसंद करता हूं। और वास्तव में, एनबर्नेट डेवलपर्स द्वारा दृष्टिकोण की सिफारिश है। More XML than code?

बेशक में गेविन राजा का हवाला देते हुए, हाइबरनेट एनोटेशन जल्दी 2005 के बाद से आसपास किया गया है और वहाँ अब किसी भी अच्छा कारण लोगों एक्सएमएल में मैपिंग को परिभाषित करने के लिए है।

सकारात्मक:

  • :

    • एनोटेशन आम तौर पर कम वर्बोज़
    • एनोटेशन कोड के साथ रहते हैं, वे बनाए रखने के लिए आसान कर रहे हैं (IMO)

    विपक्ष हैं मेटाडेटा को बदलने के लिए पुनर्मूल्यांकन की आवश्यकता होती है (यदि यह वास्तव में एक मुद्दा है)

दूसरे शब्दों में, यदि आप कर सकते हैं तो एनोटेशन का उपयोग करें। यदि आप नहीं कर सकते (आप कोड को नहीं बदल सकते हैं, उदाहरण के लिए विरासत कोड के साथ काम करते समय), एक्सएमएल मैपिंग का उपयोग करें।

0

यह आपकी पसंदों पर निर्भर करता है। उदाहरण के लिए मैं के लिए प्राथमिक कुंजी क्या परिभाषित करता हूं, कौन से मान स्वत: उत्पन्न होते हैं और इकाइयों के संबंध में परिभाषित करते हैं। इसके अलावा मैं विन्यास फाइल persistence.xml का उपयोग करता हूं जिसमें मैं परिभाषित करता हूं कि डेटाबेस को डेटाबेस में मैप किया गया है। तो मैंने डोमेन इंजीनियर के प्रोग्रामर व्यू को डेटाबेस इंजीनियर में से एक में अलग कर दिया।

0

मैं एनोटेशन दृष्टिकोण भी पसंद करता हूं, क्योंकि मुझे कक्षाओं और उनके डेटाबेस कॉन्फ़िगरेशन को एक ही स्थान पर देखना पसंद है। दूसरी ओर यह कॉन्फ़िगरेशन फ़ाइलों का उपयोग करने का सबसे बड़ा लाभ है: आपको जावा कक्षाओं को छूने की आवश्यकता नहीं है।

1

यह आप पर निर्भर है! मुझे नहीं लगता कि एक बेहतर दृष्टिकोण है। दोनों समाधान एक ही चीज़ के लिए समर्पित हैं, यानी हाइबरनेट को यह समझने में सहायता करें कि आपका डेटाबेस कैसे संरचित है। टिप्पणियां आपके एंटिटी जावा क्लास फ़ाइल में सीधे उपलब्ध होने का लाभ है।

ऐसा समय था जहां एक्सएमएल को कॉन्फ़िगरेशन जानकारी को परिभाषित करने के लिए मानक माना जाता था। जावा 5 के बाद से, इन एक्सएमएल फाइलों में शुरू में स्थित कई जानकारी अब एनोटेशन का उपयोग करके कक्षाओं में सीधे संग्रहित की जाती हैं। उदाहरण के लिए, Spring 3.x ढांचे या Java EE 6 अब एनोटेशन का उपयोग करता है।

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

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