我在很多论坛上看到过,但仍然感到困惑。我们正在开始一个Spring 3.1&的新项目。 Hibernate 4需要决定使用Spring的Hibernate策略:
直接访问Hibernate
Session session = HibernateUtil.getSessionFactory()。getCurrentSession(); session.beginTransaction();
使用HibernateTemplate
列出bb =(列表)hibernateTemplate.find(“来自实体”);
使用HibernateDAOSupport类
列出bb =(列表)getHibernateTemplate()。find(“来自实体”);
请帮助我应该使用什么?我已经从CodeRanch和另一个link读取了从 Hibernate 3.x 开始,我们应该在我们的DAO类中注入SessionFactory
(使用{{1} }})。
有人可以详细解释一下吗?
此致
答案 0 :(得分:8)
Spring本身建议不要在类的the javadoc中使用HibernateTemplate。您可以直接declare the session factory as a Spring bean,将其作为任何其他Spring bean注入您自己的组件中,并直接使用本机Hibernate API(使用sessionFactory.getCurrentSession())。
答案 1 :(得分:4)
如果您必须使用Hibernate,最好的办法是忽略Code Ranch(和SO)并遵循Spring的建议:
http://blog.springsource.org/2012/04/06/migrating-to-spring-3-1-and-hibernate-4-1/
答案 2 :(得分:0)
现在建议Hibernate 4使用SessionFactory进行自动打开/关闭连接。所以不需要使用HibernateTemplate类。