2009-05-21 22 views
10

संभव डुप्लिकेट के बिना तालिका या देखने के लिए हाइबरनेट मानचित्रण करने के लिए:
Hibernate and no PKकैसे एक प्राथमिक कुंजी

किसी को भी जानता है कि कैसे एक प्राथमिक कुंजी के बिना तालिका या देखने के लिए मानचित्रण हाइबरनेट करना है?

+2

देखने के ऊपर डालने http://stackoverflow.com/questions/767277/hibernate-and-no -पीके – Schildmeijer

उत्तर

10

ऐसा नहीं लगता कि हाइबरनेट प्राथमिक कुंजी के बिना तालिका को मैप करने की अनुमति देता है ... इस बारे में सोचें कि हाइबरनेट एक कॉलम के बिना अपडेट कैसे करेगा जो विशिष्ट रूप से पंक्ति की पहचान कर सकता है।

मुझे लगता है कि एक काम-आसपास सभी कॉलम के साथ एक समग्र कुंजी का उपयोग करना होगा, लेकिन आप प्राथमिक कुंजी जोड़ने से काफी बेहतर हैं।

+0

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

+7

मुझे नहीं पता कि यह केवल पढ़ने-योग्य स्थिति (wrt udpates) में बहुत अधिक मायने रखता है। – javamonkey79

+4

इसलिए, जब मैं प्राथमिक कुंजी के बिना किसी दृश्य से चयन करता हूं, और नहीं चाहता कि tppdate देखें कि मुझे क्या करना चाहिए? – DeveloperX

5

मैं केवल तभी ऐसा करूंगा जब आप डेटा पढ़ रहे हों (इसे लिख नहीं रहे)। आप ओरेकल की तरह एक DB है, तो आप

select DOKUMENT.*, ROWID from DOKUMENT 

→ जैसे बयानों हो सकता है और इस तरह, आप हाइबरनेट मानचित्रण में इस बयान जोड़ सकते हैं:

<id column="ROWID" type="string" /> 

बाद में, आप

के रूप में सभी स्तंभों को परिभाषित
<property... 

आप रिवर्स इंजीनियरिंग विज़ार्ड का उपयोग करते हैं, तो आप कर सकते हैं

  1. समग्र कुंजी टैग निकालना,
  2. खोज और संपत्ति के लिए की-संपत्ति की जगह और
  3. लाइन
+0

आपको अपने डालने/अपडेट कोड के अनुसार बदलना होगा – ATorras

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