2012-08-15 10 views
5

मैं एक वास्तुकला हाइबरनेट/जेपीए/स्प्रिंग/Zk पर काम कर रहा हूँ, और मैं इन दिनों सवालों गुणा क्योंकि मैं ढांचे का एक बहुत सीखना चाहिए।OpenSessionInView बनाम PersistentContext (विस्तारित)

मेरे पास एक प्रश्न है जो मुझे कई दिनों तक परेशान करता है।

मैं "पैटर्न" OpenSessionInView आलसी लोड हो रहा है बनाने के लिए जिंदा एक हाइबरनेट लेन-देन रखने के लिए के बारे में सुना है। कई लोग यह भी कहते हैं कि पैटर्न बहुत साफ नहीं है।

और अन्य पर, यह कहा जाता है कि PersistentContext बढ़ाया सुरक्षित थ्रेड नहीं है, और इसलिए जीवित रखने entityManager के लिए उपयुक्त नहीं है।

तो, इन समस्याओं का वास्तविक समाधान क्या है? मुझे लगता है कि ये मुद्दे AJAX के परिचय से उत्पन्न होते हैं जो विशेष रूप से आलसी लोडिंग के उपयोग के साथ कुछ भारी संग्रह लोड करने के लिए अधिक संभावनाओं को अनुमति देता है।

पल के लिए, मैंने विस्तारित मोड में @PersistenceContext को आजमाया। यह काम कर रहा है ... मुझे इसे अपने जुनीट परीक्षणों के लिए सेट करना था, और यह मेरे वेब एप्लिकेशन में भी अधिक विन्यास के बिना आलसी लोडिंग के साथ काम कर रहा है।

है कि ढांचा (स्प्रिंग, जेपीए 2.0) के विकास का मतलब यह अब आसान और PersistentContext के साथ और अधिक "क्लीन" काम है?

अगर ऐसा नहीं है, तो हम वसंत से OpenSessionInViewFilter का उपयोग करें और लेन-देन संबंधी मोड में PersistentContext बदलना चाहिए?

धन्यवाद।

उत्तर

1

मैं आपको सुनता हूं। मैंने 2008 से कई अनुप्रयोगों में दोनों पैटर्न लागू किए हैं। अब, मैं किसी भी स्टेटेट पैटर्न को पूरी तरह से छोड़ देता हूं। जब आप क्लाइंट को राज्य पेश करते हैं, तो आप स्केलेबिलिटी और स्टेट मैनेजमेंट के मुद्दों को उठाते हैं: क्या आप क्लाइंट में विलय करते हैं, क्या आप उपयोगकर्ता सत्र में सहेजते हैं, जब आप विज़ार्ड से गुजरते हैं तो क्या होता है और ऑब्जेक्ट को बचाने से पहले क्षणिक होना चाहिए? आप क्लाइंट और सर्वरसाइड स्थिति को सिंक्रनाइज़ कैसे करेंगे? क्या होता है जब डीबी बदलता है - क्या ग्राहक टूट जाता है? पैटर्न दो परियोजनाओं का निर्माण करना है: 1) शोकहारा webservices 2) यूजर इंटरफेस वसंत MVC सहित मौजूदा प्रौद्योगिकियों, की प्रवृत्ति पर

देखो। राज्य एक अपरिवर्तनीय डोमेन मॉडल के माध्यम से साझा किया जाता है। निश्चित रूप से आप डीटीओएस का एक सेट बनाए रख सकते हैं, लेकिन वे अनुमानित, सस्ते और स्केल असीमित हैं।

मेरी सिफारिश? यदि आप सर्वरसाइड सत्यापन का पुन: उपयोग करना चाहते हैं तो तार पर प्रॉक्सी ऑब्जेक्ट भेजने और क्लाइंट पर डीटीओ के साथ सौदा करने या क्लाइंट के साथ एक डोमेन मॉडल साझा करने से बचें। अजीक्स के माध्यम से लापरवाही एपीआई कॉल के माध्यम से आलसी संग्रह लोड किया जा सकता है। इस तरह, आप ग्राहक को पूरा नियंत्रण देते हैं।

इस तरह पिछले पांच वर्षों में सोशल वेब स्केल किया गया है।

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