2012-03-09 17 views
10

में अद्यतन सेट करना और संपत्ति डालना हाइबरनेट एचबीएम फ़ाइल में, निम्न गुणों को सेट करने का उद्देश्य क्या है?हाइबरनेट

update = "false" 
insert = "false" 

वे किस उद्देश्य से सेवा करते हैं? प्रदर्शन में वे क्या अंतर करते हैं? हमें उनका उपयोग कब करना चाहिए?

उत्तर

7

the documentation से:

अद्यतन, सम्मिलित (वैकल्पिक - सही करने के लिए डिफ़ॉल्ट): यह बताता है कि मैप किया कॉलम एसक्यूएल अद्यतन में शामिल किया जाना चाहिए और/या बयान डालें। दोनों को झूठी सेटिंग में शुद्ध "व्युत्पन्न" संपत्ति की अनुमति देता है जिसका मूल्य किसी अन्य संपत्ति से प्रारंभ किया जाता है जो समान स्तंभ (या) या ट्रिगर या अन्य एप्लिकेशन से मानचित्र करता है।

+1

इसका उपयोग करने का क्या फायदा है? – Chillax

+3

कोई फायदा नहीं है। यदि आप कॉलम को अपडेट नहीं करना चाहते हैं तो आप अपडेट = झूठी सेट करें (उदाहरण के लिए, यदि यह ट्रिगर या किसी अन्य कॉलम द्वारा अपडेट किया गया है)। और यदि आप कॉलम को सम्मिलित नहीं करना चाहते हैं तो आप झूठी डालें (उदाहरण के लिए, यदि यह ट्रिगर या किसी अन्य कॉलम द्वारा प्रारंभ किया गया है)। 99% मामलों में, इसे अपने डिफ़ॉल्ट मान पर छोड़ दें: सत्य। –

+0

मैं इसे एक सेट (बच्चे) के लिए कैसे कर सकता हूं? – PhantomReference

10

अद्यतन = "झूठी", सम्मिलित = "झूठी" का उपयोग करें जब संपत्ति की गणना/व्युत्पन्न की जाती है, या जब डेटाबेस या ट्रिगर्स मूल्य डालने/या अद्यतन करने के लिए ज़िम्मेदार होते हैं।

उदाहरण के लिए, यदि डीबी स्वचालित रूप से INSERT पर एक मान उत्पन्न करेगा जिसे आप उपयोग करना चाहते हैं, तो सम्मिलित करें = "झूठी" निर्दिष्ट करें ताकि हाइबरनेट में INSERT कथन में संपत्ति शामिल न हो।

एक और उदाहरण, एसक्यूएल फॉर्मूला के माध्यम से गणना/व्युत्पन्न संपत्ति होगी: उदाहरण के लिए, आप प्रत्येक ग्राहक के लिए ऑर्डर-योग का योग प्राप्त कर सकते हैं। उदाहरण के लिए:

<property name="totalOrders" insert="false" update="false"> 
    <formula>(select sum(ORDER.TOTAL) from ORDER where ORDER.FK_CUSTOMER=ID)</formula> 
</property> 

इस मामले में हम सम्मिलित = "false" सेट में, अद्यतन = "false" के बाद से यह स्पष्ट रूप से एक व्युत्पन्न परिणाम है, और हम इसे सीधे अद्यतन नहीं कर सकते।

प्रदर्शन? यह प्रदर्शन के बारे में नहीं है - यह आपके डेटाबेस मैपिंग के बारे में है।

+0

मैं इसे सेट के लिए कैसे कर सकता हूं? – PhantomReference