क्या OpenSessionInView पैटर्न का उपयोग करने के अलावा एक हाइबरनेट वेब एप्लिकेशन में LazyInitializationExceptions से बचने के अन्य कोई तरीके हैं? OpenSessionInView का उपयोग करने के लिए कोई डाउनसाइड्स हैं?हाइबरनेट से बचने के लिए रणनीतियां LazyInitializationExceptions
उत्तर
हमारे वेब अनुप्रयोगों पर काम करते समय, हम आम तौर पर पहले से तय करते हैं कि दृश्य पृष्ठों में कौन से ऑब्जेक्ट/फ़ील्ड की आवश्यकता होगी और सुनिश्चित करें कि दृश्य में प्रेषण से पहले सभी objecs मॉडल से ठीक से प्रारंभ किए गए हैं।
यह (कम से कम) तीन तरीकों से पूरा किया जा सकता:
- fetching
Hibernate.initialize(property)
साथ उत्सुक रणनीति का प्रयोग (यानीFetchMode.JOIN
के साथ, आप Criteria API उपयोग कर रहे हैं) - स्पष्ट रूप से प्रारंभ करने के गुण (यानी गुण)
- उपयुक्त गुण एक्सेसर फोन करके परोक्ष आरंभ गुण
OpenSessionInView के डाउनसाइड्स के बारे में, क्या आपने this पृष्ठ की जांच की है?
उत्सुकता लाने के लिए वैश्विक निर्णय किए बिना समस्या को संभालने का सबसे अच्छा तरीका; hql क्वेरी के साथ संयोजन में "fetch" कीवर्ड का उपयोग करना है।
से http://www.hibernate.org/hib_docs/reference/en/html/queryhql-joins.html
इसके अलावा, एक "को लाने" में शामिल होने की अनुमति देता है संगठनों या मूल्यों का संग्रह, अपने माता पिता वस्तुओं के साथ प्रारंभ करने के लिए एक चयन का उपयोग कर। यह संग्रह के मामले में विशेष रूप से उपयोगी है। यह संगठनों और संग्रहों के लिए मैपिंग फ़ाइल के बाहरी जुड़ने और आलसी घोषणाओं को प्रभावी ढंग से ओवरराइड करता है। अधिक जानकारी के लिए खंड 1 9 .1, "रणनीतियां लाने" देखें।
बिल्ली सेबिल्ली आंतरिक रूप लाने cat.mate cat.kittens
JBoss सीवन में स्विच करें लाने में शामिल होने के लिए छोड़ दिया में शामिल हो।
सीम फ्रेमवर्क उन लोगों द्वारा अच्छी तरह से आर्किटेक्टेड है जो हाइबरनेट विकसित करते हैं।
व्यू में ओपन सत्र के साथ भी, आपको अभी भी कुछ समस्याएं हो सकती हैं। इस पर निर्भर करता है कि आपका वेब एप्लिकेशन कितना जटिल है, दृश्य में ओपन सत्र सभी मामलों को संभाल नहीं करता है। मुझे एक ईमेल भेजने जैसे क्वार्ट्ज नौकरी के दौरान इकाइयों को लाने के रूप में डेटा (यूआई में) प्रदर्शित करने में समस्याएं थीं।
हाइबरनेट पहले ही समझदारी से डेटा प्राप्त करता है, fetch मोड को बदलने से प्रदर्शन में गिरावट आती है। इतना ही नहीं, लेकिन आप सम्मेलन से दूर हो रहे हैं और आपके प्रोजेक्ट को अपर्याप्त कॉन्फ़िगरेशन विवरण के साथ जोड़ देंगे।
वाल्टर
ओरेकल जावा ट्यूटोरियल का कहना है कि "एंटरप्राइज सेम समर्थन लेनदेन, तंत्र है कि साझा वस्तुओं की समवर्ती पहुँच लेते हैं।" इसलिए, आलसी Fetch मुद्दों को संभालने के लिए मैं एक स्टेटलेस जावा सत्र बीन बनाते हैं और फिर विधि से लौटने से पहले मुझे आवश्यक सभी उप वर्ग प्राप्त करते हैं। ओरेकल ने इसे "सत्र फैकेड" कोर जे 2 ईई पैटर्न के रूप में भी संदर्भित किया है। ये प्रथाओं में से कुछ के मुकाबले ज्यादा बेहतर आवेदन प्रथाओं की तरह प्रतीत होता है।
- 1. डेडलॉक्स से बचने के लिए हाइबरनेट के लिए आवश्यक सी 3 पी 0 सेटिंग्स क्या हैं
- 2. डेटाबेस.आईएमएल ओवरराइड करने के लिए रणनीतियां?
- 3. मैपिंग: कुंजी से बचने के लिए nohlsearch
- 4. सीआरटीपी गतिशील बहुरूपता से बचने के लिए
- 5. वेग में # से बचने के लिए कैसे
- 6. फोर्स रेजर यूआरएल से बचने के लिए
- 7. Xml से बचने के लिए/एन्कोडिंग शब्दावली
- 8. कैसे से बचने के लिए अपरिभाषित ऑफसेट
- 9. से बचने के लिए और एक यूआरएल
- 10. विधवाओं से बचने के लिए जावास्क्रिप्ट
- 11. मानदंड उत्सुक-संग्रहित संग्रह एन + 1 से बचने के लिए
- 12. ईमेल स्पैम से बचने के लिए सबडोमेन के लिए एसपीएफ़
- 13. Django + Postgres के साथ एन्क्रिप्शन के लिए रणनीतियां?
- 14. मॉडल आधारित परीक्षण रणनीतियां
- 15. ब्रांचिंग और विलय रणनीतियां
- 16. डब्ल्यूसीएफ अपवाद हैंडलिंग रणनीतियां
- 17. ऑडिट लॉगिंग रणनीतियां
- 18. फ्रीमार्कर freemarker से बचने
- 19. बंद ब्रेसिज़ से बचने
- 20. जेपीए/हाइबरनेट के साथ वसंत में, मैं आलसी प्रारंभिक अपवादों से बचने के लिए एक सत्र कैसे खोलूं?
- 21. एमवीसी संरचना में लाइव साइट माइग्रेट करने के लिए रणनीतियां?
- 22. संख्यात्मक स्थिरता मुद्दों को डीबग करने के लिए रणनीतियां?
- 23. मल्टीकोर बिल्ड (/ एमपी) के लिए रणनीतियां जो #import
- 24. टुकड़ों में सीएसवी फाइलों में पढ़ने के लिए रणनीतियां?
- 25. varbinary फ़ील्ड पर ISNULL की जांच के लिए रणनीतियां?
- 26. रेल और ट्विटर पर रूबी के लिए परीक्षण रणनीतियां OAuth
- 27. डोमेन मॉडल के साथ ल्यूसीन इंडेक्स अद्यतित रखने के लिए रणनीतियां
- 28. पुनरावर्ती कार्यों की शुद्धता दिखाने के लिए सामान्य प्रमाण रणनीतियां?
- 29. बिलाव एक धागा रोक संभावित स्मृति से बचने के लिए
- 30. एसक्यूएल क्वेरी अनुकूलन अस्थायी तालिका से बचने के लिए
हाइबरनेट 4.1.6 इसे हल करता है: http://stackoverflow.com/questions/578433/how-to-solve-lazy-initialization-exception-using-jpa-and-hibernate-as-provider/11913404#11913404 – andreak