一尘不染

为什么不建议使用HibernateDaoSupport?

spring

我最近一直在使用Hibernate 3.5和Spring 3进行一些工作,但是我对Hibernate还是比较陌生,并认为HibernateDaoSupportSpring中的类使将Hibernate与我的域类一起使用变得容易且容易。

但是,在搜索一个不相关的问题时,我看到有人提到,这HibernateDaoSupport不是使用Spring和Hibernate的最佳方法。任何人都可以阐明以下几点:

  • 为什么不推荐?
  • 整合Hibernate和Spring的最佳方法(或至少是公认的方法)是什么?

阅读 297

收藏
2020-04-11

共1个答案

一尘不染

不建议使用HibernateDaoSupport/HibernateTemplate因为它不必要地将你的代码与Spring类联系起来。

为了集成对Spring管理的事务的支持,在较早版本的Hibernate中不可避免地使用这些类。

但是,从Hibernate 3.0.1开始,你将不再需要它-你可以在使用Spring管理的事务时针对普通的Hibernate API编写代码。你所需要做的就是配置Spring事务支持,在需要使用会话时注入SessionFactory并调用getCurrentSession()它。

HibernateTemplate异常翻译的另一个好处是。如果没有HibernateTemplate相同的功能,则可以通过使用@Repository注释来实现,如Gareth Davis的答案所示。

2020-04-11