मैं अपने गैर-स्प्रिंग कोड में स्प्रिंग-डिफ़ाइंड हाइबरनेट कॉन्फ़िगरेशन और सत्र फ़ैक्टरी ऑब्जेक्ट्स प्राप्त करने का प्रयास कर रहा हूं। निम्नलिखित मेरी applicationContext.xml फाइल में परिभाषा है:मैं स्प्रिंग से हाइबरनेट कॉन्फ़िगरेशन ऑब्जेक्ट कैसे प्राप्त कर सकता हूं?
कोड:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
</props>
</property>
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
मैं अब getBean ("sessionFactory") कॉल करते हैं, तो मैं एक $ Proxy0 वस्तु जो के लिए एक प्रॉक्सी प्रतीत होता है लौटे हूँ हाइबरनेट सत्र फैक्ट्री ऑब्जेक्ट। लेकिन यह वही नहीं है जो मुझे चाहिए - मुझे स्थानीय सत्र फ़ैक्टरीबीन की आवश्यकता है क्योंकि मुझे कॉन्फ़िगरेशन के साथ-साथ सत्र फ़ैक्टरी तक पहुंच की आवश्यकता है।
कारण मुझे कॉन्फ़िगरेशन ऑब्जेक्ट की आवश्यकता है कि हमारा ढांचा हाइबरनेट के गतिशील मॉडल का उपयोग स्वचालित रूप से रनटाइम पर मैपिंग डालने में सक्षम है; इसके लिए आवश्यक है कि हम कॉन्फ़िगरेशन को बदल दें और सत्र फ़ैक्टरी का पुनर्निर्माण करें। असल में, हम जो करने की कोशिश कर रहे हैं वह हैबर्ननेट कॉन्फ़िगरेशन प्राप्त कर रहा है जो स्प्रिंग में पहले से मौजूद है ताकि हमारे ग्राहकों के पास पहले से ही स्प्रिंग में उस जानकारी को Hibernate.cfg.xml फ़ाइल में डुप्लिकेट करने की आवश्यकता न हो। हमारी हाइबरनेट सुविधाओं का उपयोग करें।
और आप सत्र फैक्ट्री का पुनर्निर्माण कैसे करते हैं? और आप कैसे सुनिश्चित करते हैं कि सभी मौजूदा लेनदेन नष्ट होने से पहले समाप्त हो गए हैं? – banterCZ