与标题一样:我如何获得SessionFactoryImplementor
的实例?我在代码中入侵的是:
SessionFactoryImplementator sfi
= (SessionFactoryImplementator) session.getSessionFactory();
我不太喜欢它,我想知道是否还有其他更优雅的方法来获取实现者的实例。
答案 0 :(得分:3)
我没有找到任何返回实现者的公共类,所以你的方法很好。 (例如look here,在使用>返回时)
答案 1 :(得分:1)
怎么样:
SessionFactoryImplementor sfi = (SessionFactoryImplementor) ctx.getBean("sessionFactory");
答案 2 :(得分:0)
阅读上述评论后,我建议原作者的代码示例......
SessionFactoryImplementator sfi = (SessionFactoryImplementator) session.getSessionFactory();
然后后者重新编码同一个委托人:
SessionFactoryImplementor sfi = (SessionFactoryImplementor) ctx.getBean("sessionFactory");
实际上使用Spring的任何人都应该始终遵循后一种方法,因为无法知道Spring3 / 4的SessionFactoryBean如何选择重新实现" openSession"等(或开发人员应用程序),但重点是通过Spring ApplicationContext访问它确保您拥有"最高级别"包装版本的实际SessionFactory,它应该实现最大数量的Hibernate SessionFactory相关接口(无论是通过AoP包装还是编译时编织等)。
如果您知道" appCtx"中只有一个Hibernate SessionFactory,那么更好的方法是:
appCtx.getBean(org.hibernate.SessionFactory.class);