2012-06-30 19 views
7

मैं हाइबरनेट करने के लिए नया हूं। क्रिप्या मेरि सहायता करे।क्या हमें इस परिदृश्य में हाइबरनेट मैपिंग की आवश्यकता है?

मेरे पास कर्मचारी और देश नामक 2 टेबल हैं। मुझे कर्मचारी को चयनित देश के साथ सहेजने की ज़रूरत है। मेरे मामले में, मुझे कर्मचारी विवरण वापस नहीं मिलेगा और इसे यूआई पर दिखाया जाएगा। क्या मुझे कर्मचारी और देश वस्तुओं के बीच मानचित्रण (ऑनटोन मैपिंग) बनाए रखने की आवश्यकता है? क्या मैं सीधे चुने हुए देश के साथ कर्मचारी को बचा नहीं सकता?

क्या मैं अपने कर्मचारी डोमेन ऑब्जेक्ट में नीचे जैसा कर सकता हूं? यदि नहीं, तो कृपया मुझे इसके साथ संभावित समस्याएं बताएं?

@column (नाम = "countryID")

निजी पूर्णांक countryID;

+0

हां, आप इसे अपने कर्मचारी डोमेन ऑब्जेक्ट में कर सकते हैं। यदि आपको देश वस्तु की आवश्यकता नहीं है, तो क्यों एक बनाएं? बस सुनिश्चित करें कि आप सही डेटा सदस्य रखते हैं। क्या यह देश आईडी होना चाहिए, या नाम या संक्षिप्त नाम बेहतर विकल्प होना चाहिए? क्या यह कर्मचारी का हिस्सा हो सकता है या शायद अधिक समझदार, पता वस्तु? – duffymo

+0

यदि आप कभी उनका उपयोग नहीं करते हैं तो आप कर्मचारियों को क्यों स्टोर करते हैं? –

+0

जैसा कि किसी अन्य एप्लिकेशन को कर्मचारी विवरण की आवश्यकता है, मैं इसे अपने आवेदन के माध्यम से सहेज रहा हूं। (मैंने केवल समझदारी के लिए कर्मचारी को लिया है, यह बिल्कुल कर्मचारी नहीं है) –

उत्तर

1

हाँ आप देश को अपने कर्मचारी ऑब्जेक्ट में डाल सकते हैं। लेकिन अगर आप को भविष्य में देश की वस्तु की आवश्यकता नहीं है, तो यह देश की वस्तु को बचाने के लिए को कोई समझ नहीं आता है।

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

2

मुझे लगता है कि आपके यहां कुछ विकल्प हो सकते हैं।

  1. आप country पूरी तरह से अपने डोमेन वर्ग से बाहर निकल सकते हैं। अगर आपको इसकी आवश्यकता नहीं है, तो हाइबरनेट को इसे लाने के लिए कहने का कोई कारण नहीं है।
  2. यदि आप इसे अपने डोमेन क्लास में मैप करने पर इसे संशोधित करने का इरादा नहीं रखते हैं और @Transitive एनोटेशन लागू करने से आप जो प्राप्त कर सकते हैं वह आपको मिल सकता है। यह हाइबरनेट को बताता है कि देश आईडी के बारे में कुछ भी डेटाबेस स्तर पर जारी रखने की आवश्यकता नहीं है।

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

आप पीछे की ओर एक रिश्ते के लिए देश आईडी उपयोग करने की आवश्यकता है, तो मुझे यकीन है कि आप शामिल इस

@Column(name = "country", insertable = "false", updatable = "false"). 

यह आपको डर के बिना देश आईडी प्राप्त करने के लिए आप इसे अधिलेखित अनुमति देता बनाने सुझाव देंगे गलती से।

आशा है कि मदद करता है!

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