假设我以编程方式 创建一个AnnotationSessionFactoryBean并正确设置各种属性。由于与创建SessionFactory有关的所有方法都受到保护,因此如何提取Hibernate SessionFactory?
AnnotationSessionFactoryBean sessionFactoryBean = new AnnotationSessionFactoryBean();
SessionFactory sessionFactory = sessionFactoryBean.newSessionFactory(); // Protected!!
最佳答案
在调用getObject()
后使用afterPropertiesSet()
:
sessionFactoryBean.afterPropertiesSet();
SessionFactory sessionFactory = sessionFactoryBean.getObject();
(
AnnotationSessionFactoryBean
实现FactoryBean<SessionFactory>
)但是要小心:这样做,确保在完成
SessionFactory
后关闭它是您的责任。