2009-11-09 13 views
12

मैं अपने Grails आवेदन में एकीकरण के परीक्षण में विफल रहता है कि जब मैं प्रकार की एक इकाई को बचाने की कोशिश द्वारा संसाधित नहीं किया गया था Memberहाइबरनेट/GORM: संग्रह फ्लश()

invitingMember.save(flush: true) 

यह निम्नलिखित अपवाद को जन्म देती है

org.hibernate.AssertionFailure: संग्रह [com.mycompany.facet.Facet.channels] था com.mycompany.member.MemberConnectionService.addOrUpdateContact (MemberC पर फ्लश() द्वारा संसाधित नहीं onnectionService.groovy: 939)

लेनदेन में इससे पहले मैं invitingMember का एक संग्रह संपत्ति के लिए एक वस्तु जोड़ें। मेरा अनुमान है कि ऊपर की रेखा पर अपवाद फेंक दिया गया है, क्योंकि यह केवल इस बिंदु पर है कि संग्रह में जोड़ा गया ऑब्जेक्ट जारी है।

उत्तर

6

अंतर्निहित समस्या शायद यह है कि हाइबरनेट सहेजने में असमर्थ नहीं है। तो जब आप Member फ्लश करते हैं, तो हाइबरनेट नोटिस करता है कि संग्रह अभी भी गंदा है (जो शायद आप जो चाहते हैं)। तो या तो संग्रह मैन्युअल रूप से फ्लश करें या tell Hibernate to cascade all the updates

+1

मैं बहुत यकीन है कि GORM (Grails कि हाइबरनेट "के शीर्ष पर" बनाया गया है द्वारा इस्तेमाल किया ORM) का उपयोग करते समय की बचत होती है डिफ़ॉल्ट रूप से सोपानी कर रहे हैं रहा हूँ। –

1

हाइबरनेट घटनाओं का उपयोग करते समय मुझे केवल एक ही समय का सामना करना पड़ा है इससे पहले, अद्यतन करें, अद्यतन से पहले - क्या आप इनका उपयोग कर रहे हैं?

इस से संबंधित JIRA में एक मुद्दा जो Grails 1.2

+0

नहीं, मैं किसी भी घटना का उपयोग नहीं कर रहा हूं –

3

के लिए तय किया गया है मैं एक संभव समाधान here पाया नहीं है।

दरअसल, स्ट्रिंग, बराबर, हैशकोड को देखें और सुनिश्चित करें कि आप अपने आलसी एक्सेसर तक नहीं पहुंच रहे हैं।

मुझे पता है कि मैं जावा के बारे में बात कर रहा हूं और यहां सवाल grails के बारे में है, लेकिन शायद grails के लिए एक ही तरह की चीज है।

संपादित करने में संकोच नहीं करें।

यह मेरे (जावा में)

1

के लिए मुद्दा था जब एक एक संग्रह करने के लिए तत्व जोड़ने के लिए के बाद संग्रह से तत्वों को नष्ट करने की कोशिश की मुझे लगता है कि त्रुटि थी। संग्रह में नए तत्व जोड़ने से पहले मैंने इसे save(flush:true) पर कॉल करके हल किया।

  • मेरे मामले में, संग्रह हमेशा select से वापस आ जाता है।
संबंधित मुद्दे