4

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

  1. 直接访问休眠

    会话会话 = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction();

  2. 使用休眠模板

    List bb = (List)hibernateTemplate.find("来自实体");

  3. 使用 HibernateDAOSupport 类

    List bb =(List)getHibernateTemplate().find("来自实体");

你能帮我用什么吗?我已经阅读了CodeRanch和另一个链接,它告诉我们从Hibernate 3.x开始我们应该注入SessionFactory我们的 DAO 类(使用@Repository)。

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

问候,

阿伦·库马尔

4

3 回答 3

10

Spring 本身建议在类的 javadoc中不再使用 HibernateTemplate 。您可以直接将会话工厂声明为 Spring bean,将其作为任何其他 Spring bean 注入您自己的组件中,并直接使用本机 Hibernate API(使用sessionFactory.getCurrentSession())。

于 2012-10-19T11:30:01.360 回答
4

如果您必须使用 Hibernate,最好的办法是忽略 Code Ranch(和 SO)并遵循 Spring 的建议:

http://blog.springsource.org/2012/04/06/migrating-to-spring-3-1-and-hibernate-4-1/

于 2012-10-19T09:44:28.703 回答
0

现在 SessionFactory 被推荐用于 Hibernate 4 以自动打开/关闭连接。所以不需要使用 HibernateTemplate 类。

于 2013-12-27T10:08:09.677 回答