क्या कोई मुझे यह समझने में सहायता कर सकता है कि हाइबरनेट को मैं जो करना चाहता हूं उसे कॉन्फ़िगर कैसे करें।हाइबरनेट - बच्चों को रखने के लिए केवल माता-पिता को कैसे बनाए रखें
मेरे पास "कक्ष" की सूची के साथ एक मूल इकाई "अपार्टमेंट" है। मेरे पास "अपार्टमेंट" संपादित करने के लिए एक फॉर्म है और उस रूप में मैंने सूचनात्मक उद्देश्यों के लिए सभी बच्चों को "कक्ष" सूचीबद्ध किया है। कमरों को एक अलग रूप में जोड़ा और संपादित किया जाता है।
तो क्योंकि मैं अपार्टमेंट फार्म मैं गलत पर lazyloading की स्थापना की है में उपलब्ध लिस्टिंग हूँ:
@OneToMany
@JoinColumn (name = "appartmentId")
@LazyCollection (LazyCollectionOption.FALSE)
private List<Room> room;
लेकिन अगर मैं एक अपार्टमेंट संपादित करें और इसे स्टोर, सभी अपार्टमेंट कमरे अचानक गायब। डेटाबेस में वे हटाए नहीं जाते हैं, लेकिन dereferenced (जैसा कि appartmentId = null में)।
तो मैं केवल अपने अपार्टमेंट-ऑब्जेक्ट को बनाए रखने के लिए हाइबरनेट को कैसे कॉन्फ़िगर कर सकता हूं। और बच्चों को बिल्कुल छूएं नहीं?
यह मेरा बचाने वाली कार्रवाई है:
public String save() throws Exception {
boolean isNew = (appartment.getAppartmentId() == null);
appartment = appartmentManager.save(appartment);
String key = (isNew) ? "appartment.added" : "appartment.updated";
saveMessage(getText(key));
return SUCCESS;
}
क्या आप इसे स्टोर करने से पहले 'अपार्टमेंट' ऑब्जेक्ट का पुनर्निर्माण कर रहे हैं? ऐसा लगता है कि आप 'अपनी सूची से कक्ष' को हटा रहे हैं, या तो स्पष्ट रूप से या एक नई, खाली सूची बनाकर। – Jeremy
मैंने अभी ऊपर अपना सेव-मेटोड जोड़ा है। जैसा कि आप देख सकते हैं कि मैं इसे स्टोर करने से पहले वास्तव में अपार्टमेंट ऑब्जेक्ट में कुछ भी नहीं करता .. – user829237
'अपार्टमेंट' कहां से आता है? (साइड नोट: यह वर्तनी है * अपार्टमेंट * ;-) – Jeremy