2011-10-12 12 views
7

सहेजने के बिना एक grails डोमेन ऑब्जेक्ट को संशोधित और मान्य करें I ऑब्जेक्ट को पुनर्प्राप्त करने के लिए GORM .get का उपयोग कैसे करें, कुछ फ़ील्ड संशोधित करें, और o.validate() को ऑब्जेक्ट को डीबी पर सहेजने के बिना त्रुटियों को खोजने के लिए कॉल करें। खुद को त्यागें सहेजने से नहीं रोकता है। न तो करता हैइसे

   clazz.withTransaction { status -> 
        row.validate(flush:false) 
        row.discard() 
        status.setRollbackOnly() 
       } 

This पोस्ट एक कमांड वस्तु उपयोग की सलाह देते हैं, लेकिन इस कोड को कई अलग अलग डोमेन वस्तु पर लागू होंगे। हाइबरनेट को निर्देशों को सहेजने के लिए एक सरल तरीका (कुछ पैरामीटर मान्य करने के लिए पास किया गया है?) होना चाहिए। क्या मुझे हर बार एक नया उदाहरण बनाने की ज़रूरत है?

उत्तर

11

आप read() बजाय get() का उपयोग करते हैं वस्तु यह नहीं होगा प्राप्त करने के लिए फ्लश (उदाहरण के लिए लेन-देन या एक वेब अनुरोध के अंत में) के दौरान ऑटो बचा लिया। यह वास्तव में केवल पढ़ने के लिए नहीं है, क्योंकि आप save() पर कॉल कर सकते हैं और यह जारी रहेगा - यह गंदा होने पर ऑटो-सेव करने वाला नहीं है।

+0

क्या ऑब्जेक्ट को फ्लश कतार में ऑब्जेक्ट डालने के लिए जरूरी नहीं है? –

+2

नहीं, संशोधित सत्र से जुड़ा कोई भी उदाहरण फ़्लश किया जाएगा। केवल एक ही समय जिसे आपको 'सेव()' कॉल करने की आवश्यकता है, नए उदाहरणों के लिए है। –

+0

ग्रेट। धन्यवाद – cardenizen

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