HibernateTemplate与HibernateDaoSupport对比SessionFactory注入

时间:2012-10-19 09:17:53

标签: spring hibernate

我在很多论坛上看到过,但仍然感到困惑。我们正在开始一个Spring 3.1&的新项目。 Hibernate 4需要决定使用Spring的Hibernate策略:

  1. 直接访问Hibernate

    Session session = HibernateUtil.getSessionFactory()。getCurrentSession();     session.beginTransaction();

  2. 使用HibernateTemplate

    列出bb =(列表)hibernateTemplate.find(“来自实体”);

  3. 使用HibernateDAOSupport类

    列出bb =(列表)getHibernateTemplate()。find(“来自实体”);

  4. 请帮助我应该使用什么?我已经从CodeRanch和另一个link读取了从 Hibernate 3.x 开始,我们应该在我们的DAO类中注入SessionFactory(使用{{1} }})。

    有人可以详细解释一下吗?

    此致

    Arun Kumar

3 个答案:

答案 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类。