2009-05-26 10 views
15

हाइबरनेट को "हटाने-अनाथ" के लिए एक-से-एक या कई-से-एक संबंधों के लिए कोई समर्थन नहीं है। मैंने हाल ही में यह खोजा है, और यह मुझे गंभीर सिरदर्द दे रहा है। मेरे मॉडल में मेरे पास कुछ कक्षाएं हैं जिन्हें डिजाइन किया गया था कि बच्चे के पास असली दुनिया नहीं है जिसका अर्थ माता-पिता के बाहर है। मेरे माता-पिता के लिए केवल एक डीएओ है, और बाल वर्ग के लिए अलग डीएओ नहीं है।हाइबरनेट की हटाने के अनाथ-अनाथ समर्थन के लिए एक-से-एक और कई से एक रिश्ते के लिए कामकाज?

यह काम करता है:

parent.getChild().setProperty("something"); 
parentDao.save(parent); 

यह कुछ भी नहीं करता है:

parent.setChild(null); 
parentDao.save(parent); 

यह बेहद दुर्भाग्यपूर्ण है क्योंकि अब मैं अपने डीएओ परत पर पुनर्विचार करने के लिए है और मेरी सेवा के संचालन के लिए कुछ है परत।

क्या किसी ने इस सीमा के आसपास एक सुरुचिपूर्ण तरीके से काम किया है? मैं वास्तव में केवल मूल वस्तुओं के साथ खुद को चिंता करना चाहता हूं। इस विशेष मामले में, हाइबरनेट को खुश करने के अलावा, और केवल बच्चों को हटाने के मामले में बच्चे के दृढ़ता से निपटने का कोई कारण नहीं है।

उत्तर

4

यह एक ड्रॉ ढांचे वे संबोधित कर सकते हैं में वापस आ गया प्रतीत होता है उम्मीद है कि जल्द ही

http://opensource.atlassian.com/projects/hibernate/browse/HHH-2608

कि टिकट 2007 में खोला गया था और नवीनतम पोस्ट समस्या के बारे में शिकायत के रूप में एक महीने पहले हाल ही में के रूप में था ।

मैं जो कर रहा हूं वह है IMarkedForDeletion नामक मेरे ऑब्जेक्ट पर एक संपत्ति डालना। और यदि यह सच हो जाता है, तो मेरे पास दाओ या मेरी सेवा एक स्पष्ट हटा है। यह निश्चित रूप से उतना अच्छा नहीं है जितना कि डिलीट-अनाथ होगा, लेकिन यह वसंत + हाइबरनेट फ्रेमवर्क में काफी अच्छी तरह से काम करता है।

मैं इस पोस्ट पर नजर रखूंगा क्योंकि यह एक बहुत ही महत्वपूर्ण सवाल है।

+0

ऐसा लगता है कि इसके बारे में एक साल पहले हल किया गया था अभिलेख को नष्ट/प्रोजेक्ट/हाइबरनेट/ब्राउज/एचएचएच -4726 –

+1

@ सवानाः ऐसा लगता है कि 'डिलीवरी-अनाथ' '' के लिए समर्थित है यदि संबंध 'बाधित नहीं है' (http://docs.jboss.org/hibernate देखें /core/3.6/reference/en-US/html/mapping.html#onetoone4)। मैं इसे अपने आप को शायद ही समझा सकता हूं, क्योंकि एक-एक के लिए हमेशा एक रेफरेंशियल कुंजी बाधा होती है। –

3

यहां वर्णित वर्कअराउंड https://forum.hibernate.org/viewtopic.php?p=2379216 मेरे लिए काम किया। यह @OneToOne एसोसिएशन को लागू करने के लिए "कई" पक्ष पर एक तत्व के साथ @OneToMany एसोसिएशन का उपयोग करता है और निकास-अनाथ समस्या को हल करता है।

-1

बच्चे तालिका पर अद्यतन ट्रिगर पर डेटाबेस लिखें। http://opensource.atlassian.com - यदि माता पिता कुंजी रिक्त है बच्चे से

+0

क्या आप उत्तर में अधिक सामान जोड़ सकते हैं –

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