grails - How to prevent unwanted update of persisted objects? -


मेरे पास एक लोड वर्ग और एक कार्गो वर्ग है I लोड का एक उदाहरण कार्गो

  वर्ग लोड {कार्गो कार्गो} वर्ग कार्गो {स्ट्रिंग का नाम बिगडीकेल लागत}   

चलिए कहते हैं कि नाम का कार्गो का एक उदाहरण है "रॉक" और लागत है "11.11 "। अब मैं कार्गो का एक उदाहरण बनाकर लोड का उपयोग कर सकता हूं। अब जब लोड का उदाहरण बना दिया गया है, मैं नहीं चाहता कि यह "कार्गो" बदलना है। उदाहरण के लिए, अगर मैं "रॉक" की कीमत "22.22" में बदलता हूं, तो मुझे बदलने के लिए लोड के अपने उदाहरण में "कार्गो" की कीमत नहीं चाहिए ऐसी स्थिति को संभालने का सबसे अच्छा तरीका क्या है?

ठीक है, अगर आप केवल एक ही हो सकता है कार्गो प्रति लोड (आपके उदाहरण के अनुसार), आपको लागत संपत्ति को लोड में जोड़ना होगा। फिर आपको ऑब्जेक्ट के निर्माण के समय की लागत की प्रतिलिपि बनाने की आवश्यकता होगी। आप लोड ऑब्जेक्ट में ओवरलोड की गई विधि के माध्यम से ऐसा कर सकते हैं, या कार्गो से लोड को जोड़ने के लिए अपनी स्वयं की विधि लिख सकते हैं।

यदि आपको वास्तव में एकाधिक कार्गो प्रति लोड की आवश्यकता है, तो आप कनेक्शन का प्रतिनिधित्व करने के लिए एक मध्यवर्ती वस्तु चाहते हैं। यह ऑब्जेक्ट उस समय की कीमत संग्रहीत करेगा जब वे जुड़े थे। यह ऐसा दिखेगा:

  वर्ग लोड {लोडकार्गो लोडकार्गो} वर्ग लोडकार्गो {कार्गो कार्गो बिगडीकेल लागत} वर्ग कार्गो {स्ट्रिंग का नाम बिगडीकेल लागत}   

बेशक

संपादित करें एकाधिक-संबंधित स्थिति को संभालने का एक और तरीका है डुप्लिकेट करना है कार्गो हर बार लागत को अपडेट किया जाता है। यह अधिक कुशल हो सकता है यदि आप लागत की अपेक्षा कर रहे हैं ज्यादातर स्थैतिक होने के लिए मैं इसे फ़ील्ड को "अक्षम" आइटम जोड़कर इसे संभालता हूं, जैसे:

  वर्ग कार्गो {स्ट्रिंग का नाम बिगडीकेल लागत बूलियन सक्रिय = सच}   

मेरा मानना ​​है कि आप इस तरह अपडेट पर कार्गो को क्लोन कर सकते हैं: <प्री> पुरानेकार्गो = कार्गो.गेट (पैराम्स.आईडी) newCargo = new cargo () newCargo.properties = oldCargo.properties // अब नई लागत, आदि सेट करें newCargo.save () oldCargo.active = false oldCargo.save ()

यह सिर्फ एक अनुमान है, शायद यह टूट गया है।

Comments

Popular posts from this blog

mysql - BLOB/TEXT column 'value' used in key specification without a key length -

c# - Using Vici cool Storage with monodroid -

python - referencing a variable in another function? -