मेरे पास एक डोमेन ऑब्जेक्ट पर एक संपत्ति है जिसे कई से एक तत्व में घोषित किया गया है। इस संपत्ति के मूल वाक्य रचना इस तरह दिखता है:हाइबरनेट को उत्सुकता से कई-से-एक संबंधित ऑब्जेक्ट लाने से रोकने के लिए कैसे करें
<many-to-one name="propertyName" class="propertyClass" fetch="select" not-found="ignore" lazy="proxy" />
अब, विचार है करने के लिए हाइबरनेट नहीं बेसब्री से इस संपत्ति लाने है। यह शून्य हो सकता है, इसलिए ज्ञात अनदेखा सेट नहीं है।
लेकिन, हाइबरनेट, वर्ग इस संघ युक्त लोड हो रहा है पर, यह अपने आप पर जब जनक वर्ग भरी हुई है वास्तविक वर्ग (भी नहीं एक प्रॉक्सी) उदाहरण लोड करने के लिए ले जाता है। चूंकि कुछ गुण आकार में 1 एमबी से अधिक हैं, इसलिए वे बहुत सारी ढेर जगह लेते हैं।
अगर, हालांकि, नहीं पाया अपवाद पर सेट है (या अपवाद के लिए चूक) है, जो इस संपत्ति एक प्रॉक्सी लोड करते जनक वर्गों!
मैं कैसे एक प्रॉक्सी लोड नहीं से हाइबरनेट बंद कर सकते हैं, जबकि अभी भी इस संपत्ति अशक्त होने के लिए अनुमति देता है?
मैं आलसी पाया = कोई प्रॉक्सी, लेकिन बाईटकोड संशोधन के कुछ प्रकार के बारे में बात करती है और प्रलेखन किसी भी जानकारी में जाने नहीं देता है। क्या कोई मेरी मदद कर सकता है?
यदि यह महत्वपूर्ण है, तो यह हाइबरनेट का जावा संस्करण है, और यह कम से कम संस्करण 3 है (यदि यह मदद करता है तो मैं वास्तविक संस्करण देख सकता हूं, लेकिन यह अब के लिए हाइबरनेट 3+ है)।
मैंने पहले निर्दिष्ट नहीं किया था, लेकिन जावा संस्करण 1.4 है। तो, जावा एनोटेशन समर्थित नहीं हैं।
यह आशाजनक लग रहा है ... अगर यह काम करता है तो मैं आपका जवाब स्वीकार करूंगा। धन्यवाद! – MetroidFan2002
कोई बात नहीं, लेकिन मैं मूल रूप से लगता है कि आप एकल सिरे संघों के साथ एक आलसी प्रॉक्सी नहीं हो सकता है की तुलना में अशक्त हो सकता है (एक-से-एक या कई-टू-पर)। भारी ढेर खपत के लिए, मुझे क्लॉब्स की वजह से एक ही समस्या थी, मैंने क्लॉब्स को दूसरी कक्षा में खींचकर और आवश्यकतानुसार लोड कर दिया। –
मुझे लगता है कि हम जो करने जा रहे हैं वह उस वर्ग में फ़ील्ड डालता है जो कि विशाल है (यह एक XML दस्तावेज़ है जिसे अंततः वेब सेवा में भेजा जाता है) आलसी लोड किए गए फ़ील्ड में, बाइटकोड सामग्री का उपयोग करके आप इंगित करते हैं। दुर्भाग्यवश, डोमेन मॉडल मेरे हाथों से बाहर है। – MetroidFan2002