【问题标题】:HibernateTemplate vs HibernateDaoSupport vs SessionFactory InjectionHibernateTemplate vs HibernateDaoSupport vs SessionFactory 注入
【发布时间】:2014-08-29 13:21:32
【问题描述】:

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

  1. 直接访问休眠

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

  2. 使用休眠模板

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

  3. 使用 HibernateDAOSupport 类

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

你能帮我用什么吗?我读过CodeRanch 和另一个link 的内容,它们告诉我们从Hibernate 3.x 开始,我们应该在我们的DAO 类中注入SessionFactory(使用@Repository)。

谁能详细解释一下?

问候,

阿伦库马尔

【问题讨论】:

  • 确保您确实需要 Hibernate。没有必要使用数据库。确保您在做出假设之前了解好处和权衡。
  • Hibernate 已经为新项目完成。但需要从上面了解最佳策略。
  • 好问题,不同技术之间有很多重叠。

标签: spring hibernate


【解决方案1】:

Spring 本身建议不要在类的the javadoc 中再使用 HibernateTemplate。您可以直接declare the session factory as a Spring bean,将其作为任何其他 Spring bean 注入您自己的组件中,并直接使用本机 Hibernate API(使用sessionFactory.getCurrentSession())。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      现在建议 Hibernate 4 使用 SessionFactory 来自动打开/关闭连接。所以不需要使用 HibernateTemplate 类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-04
        • 2023-03-21
        • 2020-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-26
        相关资源
        最近更新 更多