2010-01-14 15 views
6

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

EclipseLink को इस कॉलम की आवश्यकता है क्योंकि मुझे इसे हटाने के बाद त्रुटियां मिली हैं। क्या यह कॉलम प्रदर्शन कारणों आदि के लिए जोड़ा गया है? डेटाबेस स्कीमा के दृष्टिकोण से मैं इस बारे में विशेष रूप से खुश नहीं हूं क्योंकि यह कॉलम केवल अनावश्यक अव्यवस्था है।

हाइबरनेट आधारित जेपीए कुछ भी ऐसा नहीं करता है।

+0

शायद आपने अपने प्रश्न में एक त्रुटि दर्ज की है। आप कहते हैं कि आप समझते हैं कि क्यों इसमें शामिल है, लेकिन अगर इसमें शामिल नहीं है ... – cletus

उत्तर

1
Joined Table Inheritance से

:

में शामिल हो गए तालिका विरासत में, जड़ मेज से प्रत्येक वर्ग के शेयरों डेटा। इसके अलावा, प्रत्येक सबक्लास अपनी अपनी तालिका को परिभाषित करता है जो इसकी विस्तारित स्थिति जोड़ता है।

...

discriminator स्तंभ किस प्रकार निर्धारित करता है और इस तरह क्या तालिका में शामिल हो गए है: निम्न उदाहरण दो टेबल, परियोजना और L_PROJECT, साथ ही वर्गों दो के रूप में, परियोजना और LargeProject से पता चलता उपयोग करने के लिए आपको मूल तालिका में एक भेदभावकर्ता कॉलम की आवश्यकता है।

+4

बिल्कुल, और यही मैं समझना चाहता हूं: क्यों ग्रहण लिंक इस भेदभावकर्ता कॉलम का उपयोग कर रहा है - यह आवश्यक नहीं है, जॉइन की गई रणनीति विदेशी कुंजी संघ पर आधारित है कक्षाएं। जेपीए स्पेक का कहना है कि भेदभावकर्ता जॉइन रणनीति के लिए वैकल्पिक है - हाइबरनेट जेपीए उदाहरण के लिए इसका उपयोग नहीं कर रहा है - और मैं सीखना चाहता हूं कि इसका उपयोग करने का क्या फायदा है, जैसा कि एक्लिप्स लिंक्स करता है। –

+0

मुझे लगता है कि आप http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html#inheritance-tablepersubclass का जिक्र कर रहे हैं। ExlipseLink मुझे लगता है कि इस संबंध में बस स्पष्ट है। भेदभावकर्ता कॉलम उपयुक्त उप-वर्ग खोजने के लिए EXISTS (या समान) चेक करने की समस्या से बचाता है। यहां तक ​​कि अगर यह वैकल्पिक था तो भी मैं इसका उपयोग करूँगा। – cletus

+0

यह समझ में आता है, भेदभावकर्ता निश्चित रूप से चीजों को लागू करने में आसान बनाता है। आपको जवाब के लिए धन्यवाद! –

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