buildSessionFactory()
buildSessionFactory(ServiceRegistry)
द्वारा प्रतिस्थापित क्यों किया गया है? सेवा रजिस्ट्री का महत्व क्या है?buildSessionFactory() को क्यों हटाया गया है?
उत्तर
इस के कारणों पर विस्तार से बताया जाता है हाइबरनेट के Jira
https://hibernate.onjira.com/browse/HHH-2578
वर्तमान में एक SessionFactory एक विन्यास वस्तु में सामान का एक गुच्छा फेंक, यह सरगर्मी, यह एक फोड़ा करने के लिए आने की अनुमति से बनाया गया है, और फिर सत्र फैक्टरी बाहर खींच रहा है। गंभीरता में, वर्तमान में कॉन्फ़िगरेशन के भीतर हम किस तरह से काम करते हैं और सत्र फ़ैक्टरी बनाने के लिए इसका उपयोग कैसे करते हैं, इसके साथ कुछ समस्याएं हैं: सामान्य मुद्दा यह है कि जानकारी के विभिन्न टुकड़े उपलब्ध होने पर "जीवन चक्र" नहीं है। यह कई तरीकों से एक महत्वपूर्ण चूक है: 1) स्कीमा पीढ़ी पर विचार करें। फिलहाल हम बोलीभाषा को तब भी नहीं जान सकते जब बहुत सारे डीबी ऑब्जेक्ट नाम निर्धारित किए जा रहे हैं। यह अच्छा होगा क्योंकि यह हमें टेबल/कॉलम नामों को पारदर्शी रूप से संभालने की अनुमति देगा जो कि बोली में कीवर्ड/आरक्षित शब्द भी हैं, उदाहरण के लिए। 2) प्रकारों और प्रकार-मैपिंग की स्थिर-नस्ल। क्योंकि वर्तमान में हमारे पास कुछ भी नहीं है जिससे उन्हें गुंजाइश किया जा सके। आदर्श रूप से एक प्रकार का उदाहरण सत्र फैक्ट्री के बारे में पता होगा, जिस पर यह बाध्य है। इसके बजाए, अब हमारे पास क्या है, एपीआई विधियों को सत्र फ़ैक्टरी में एक पारित पैरामीटर के रूप में जोड़ने के लिए काफी समय लगता है जब भी यह पता चला कि इसकी आवश्यकता है। 3) भी, हाइबरनेट में "स्थैतिक" कॉन्फ़िगरेशन पैरामीटर के अधिकांश (सभी?) वर्तमान में इन स्थिर प्रकारों के भीतर से उनके उपयोग के कारण होने की आवश्यकता है; इस प्रकार स्कोपिंग प्रकार हमें उन कॉन्फ़िगरेशन पैरामीटर (बाइटकोड-प्रदाता, बाइनरी स्ट्रीम का उपयोग इत्यादि) जैसी गुंजाइश करने की अनुमति देंगे। आदर्श रूप से जो मैं देख रहा हूं वह एक ऐसी योजना है जहां उपयोगकर्ता एक org.hibernate.cfg.Settings (या कुछ समान) उदाहरण बनाते हैं। इसके अतिरिक्त वे किसी प्रकार की रजिस्ट्री में मेटाडेटा लागू करेंगे (अब इसे मेटाडेटा रजिस्ट्री को कॉल करें)। फिर सत्र फैक्ट्री बनाने के लिए, वे इन दो टुकड़ों की जानकारी (सीटीओआर के माध्यम से? निर्माता के माध्यम से?) की आपूर्ति करेंगे। महत्वपूर्ण पहलू यह है कि मेटाडाटा रजिस्ट्री में जानकारी का समय उस बिंदु तक नहीं निपटाया जाएगा, जो हमें गारंटी देता है कि स्कीमा ऑब्जेक्ट नामों, प्रकारों आदि को हल करने के लिए रनटाइम सेटिंग्स (और विशेष रूप से बोली) तक पहुंच होगी
तुम भी पढ़ सकते हैं इस पर टिप्पणी: https://hibernate.onjira.com/browse/HHH-7580 इसकी भी पेस्ट कॉपी करने के लिए ज्यादा और मुझे लगता है कि Jira नीचे जाना नहीं होगा तो क्या यह उत्तर मान्य होना चाहिए।