假设我以编程方式创建AnnotationSessionFactoryBean并正确设置各种属性。然后我如何提取Hibernate SessionFactory,因为所有与创建SessionFactory相关的方法都受到保护?
AnnotationSessionFactoryBean sessionFactoryBean = new AnnotationSessionFactoryBean();
SessionFactory sessionFactory = sessionFactoryBean.newSessionFactory(); // Protected!!
答案 0 :(得分:9)
在致电getObject()
后使用afterPropertiesSet()
:
sessionFactoryBean.afterPropertiesSet();
SessionFactory sessionFactory = sessionFactoryBean.getObject();
(AnnotationSessionFactoryBean
实施FactoryBean<SessionFactory>
)
但是要小心:通过这样做,确保SessionFactory
在完成后关闭是您的责任。