2011-01-12 11 views
8

में इसका उपयोग करना मैं एक स्प्रिंग 3 + जेपीए 2.0 आवेदन है मजबूर करने के लिए कैसे। मेरे @Controller में मुझे प्रारंभिक ऑब्जेक्ट की आवश्यकता है, लेकिन मेरे पास प्रॉक्सी है, मुझे इसे प्रोग्रामेटिक रूप से प्रारंभ करने में सक्षम होना चाहिए। मुझे org.hibernate.Hibernate.initialize(Object) जैसी कार्यक्षमता की आवश्यकता है।एक हाइबरनेट जेपीए प्रॉक्सी प्रारंभ एक JSON कॉल

कोई कर सकते हैं। ऑब्जेक्ट का उपयोग AJAX संचालन के लिए किया जाता है। गुण प्रॉक्सी कर रहे हैं मुझे नहीं मेरी जानकारी के लिए JSON के रूप में भेज सकते हैं

उत्तर

4

नहीं जेपीए विकल्प। आपको Hibernate.initialize(..) का उपयोग करना चाहिए।

वास्तव में, जब मैं हाइबरनेट कार्यान्वयन पर एक दृष्टि डाली, आलसी संग्रह कई मामलों है कि एक अपेक्षा नहीं में प्रारंभ होना दिखाई देते हैं। entityManager.contains(..) और Persistence.getPersistenceUtil().isLoaded(...) की तरह। इन्हें आज़माएं, लेकिन मुझे नहीं लगता कि आपको ऐसे कार्यान्वयन विवरणों पर भरोसा करना चाहिए।

+0

हाँ धन्यवाद एक कार्यान्वयन-विशिष्ट तंत्र का उपयोग करने के लिए है, हालांकि इस मामले गया हो सकता है होने बचाता है। मैं अतिरिक्त वस्तुओं को नहीं बनाना चाहता था और फिर इसे देखने के लिए भेजना चाहता था। चूंकि हम अभी भी परियोजना में शुरुआती हैं, इसलिए हमने जेपीए के कारणों को छूने के कारण हाइबरनेट में जाने का फैसला किया है :)। अब सभी हाइबरनेट उपयोगकर्ताओं के लिए बस 'Hibernate.initialise (..)' का उपयोग करें – pmanolov

0

हम अपने आवेदन में एक ऐसी ही बात कर रहे हैं और हम इसे हमारे डेटाबेस इकाई वस्तुओं विभाजित और JSON उत्पादन के लिए कक्षाओं का एक और समूह है करने के लिए उपयोगी पाया है।

आप एक JSON रूपरेखा है कि सिर्फ अपने वस्तु निरीक्षण करता है और वस्तु पर प्रत्येक के लिए कुछ JSON और हर संपत्ति बाहर chucks तो जैसे वस्तुओं के लिए सक्षम किया जा रहा उपयोग कर रहे हैं:

PersonEntity - कक्षा जेपीए द्वारा प्रबंधित और PersonJsonOutput - क्लास विशेष रूप से JSON आउटपुट

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

यह भी आप डेटाबेस में मजबूर कर संख्या कहते तिथि प्रारूप के संदर्भ या में अपने JSON उत्पादन का अधिक नियंत्रण देता है आपके JSON, आदि में तार होने के लिए ...

इस उत्तर वास्तव में सिर्फ आप कैसे पर निर्भर करता है ' फिर से अपना JSON उत्पन्न कर रहा है, लेकिन ऐसा लगता है जैसे आपकी लाइब्रेरी कुछ आत्मनिरीक्षण करता है।

0

मैं जानता हूँ कि यह देर हो चुकी है और जवाब में स्वीकार किया जाता है, लेकिन एक और मानक जेपीए रास्ता सूची आप डीएओ से वस्तु वापस लौटाने से पहले प्रारंभ करना चाहते हैं पर आकार() विधि कॉल करने के लिए है:

Object.getList().size(); 

यह आपको मैं धोखा और आरंभीकरण के लिए

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