Tôi đang cố gắng để có được Spring-defined Hibernate Configuration và SessionFactory objects trong mã không phải Spring của tôi. Sau đây là định nghĩa trong tập tin applicationContext.xml tôi:Làm thế nào tôi có thể lấy đối tượng Cấu hình Hibernate từ Mùa xuân?
Code:
<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>
Nếu bây giờ tôi gọi getBean ("sessionfactory"), tôi trở lại một đối tượng $ Proxy0 đó dường như là một proxy cho đối tượng Hibernate SessionFactory. Nhưng đó không phải là thứ tôi muốn - tôi cần LocalSessionFactoryBean vì tôi cần truy cập vào Configuration cũng như SessionFactory.
Lý do tôi cần đối tượng Cấu hình là khung của chúng tôi có thể sử dụng mô hình động của Hibernate để tự động chèn ánh xạ vào thời gian chạy; điều này đòi hỏi chúng ta phải thay đổi Configuration và xây dựng lại SessionFactory. Thực sự, tất cả những gì chúng tôi đang cố gắng thực hiện là lấy cấu hình Hibernate đã tồn tại trong Spring để những khách hàng của chúng ta đã có thông tin đó trong Spring không cần sao chép nó vào một tệp hibernate.cfg.xml để sử dụng các tính năng Hibernate của chúng tôi.
Và cách bạn xây dựng lại sessionFactory? Và làm thế nào để bạn đảm bảo rằng tất cả các giao dịch hiện tại đã hoàn thành trước khi gọi phá hủy? – banterCZ