क्या हाइबरनेट में हाइबरनेट ऑब्जेक्ट को सहेजते समय गुणों के को अनदेखा करता है?मैं हाइबरनेट को नल मानों को अपडेट करने से कैसे रोक सकता हूं
नोट
मेरे मामले में मैं एक हाइबरनेट Pojo को जैक्सन के माध्यम से डी serializing कर रहा हूँ JSON।
JSON में केवल पोजो के कुछ फ़ील्ड शामिल हैं। यदि मैं पोजो को उन फ़ील्ड को सहेजता हूं जो जेएसओएन में नहीं हैं तो वे पोजो में शून्य हैं और उन्हें हाइबरनेट करते हैं।
मैं updateable=false
सेटिंग में आया, लेकिन यह 100% समाधान नहीं है। http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-mapping-property
हो सकता है कि किसी ने एक और विचार ...
नोट 2 की है:
dynamicUpdate
एनोटेशन हाइबरनेट डॉक्स के अनुसार वास्तव में
dynamicInsert/dynamicUpdate (करता है गलत पर डिफ़ॉल्ट):
निर्दिष्ट करता है कि INSERT/UPDAT ई एसक्यूएल रनटाइम पर जेनरेट किया जाना चाहिए और केवल कॉलम हैं जिनके मान शून्य नहीं हैं।
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#mapping-declaration-class
अजीब पर्याप्त अगर आप dynamic-update
दस्तावेज के माध्यम से एक्सएमएल में परिभाषित शून्य मूल्यों की hanlding का उल्लेख नहीं है।
गतिशील अद्यतन (वैकल्पिक - गलत पर चूक):
निर्दिष्ट करता है कि UPDATE SQL होना चाहिए> क्रम में उत्पन्न और केवल उन स्तंभों जिनके मान बदल गया है हो सकता है।
तथ्य यह है कि मैं दोनों एनोटेशन और एक्सएमएल विन्यास का उपयोग कर रहा के कारण, हाइबरनेट मेरी dynamicUpdate=true
एनोटेशन पर ध्यान नहीं देता रहा है।
आप एसक्यूएल में आ रहा है गुण अद्यतन नहीं किया गया है जो से बचने के लिए गतिशील अद्यतन का उपयोग कर सकते हैं, लेकिन यह आम तौर पर केवल जब सत्व बहुत गुण है (स्तंभों> 50) [संदर्भ इस सेटिंग का उपयोग करने की सलाह दी जाती है: हाइबरनेट 2006 संस्करण के साथ जावा पर्सिस्टेंस]। @ hvgotcodes यह इंगित करने में सही है कि यदि आप कभी भी जारी नहीं रहेंगे तो आपको फ़ील्ड को मानचित्र नहीं करना होगा। – frictionlesspulley