我最近一直在使用Hibernate 3.5和Spring 3进行一些工作,但是我对Hibernate还是比较陌生,并认为HibernateDaoSupportSpring中的类使将Hibernate与我的域类一起使用变得容易且容易。
HibernateDaoSupport
但是,在搜索一个不相关的问题时,我看到有人提到,这HibernateDaoSupport不是使用Spring和Hibernate的最佳方法。任何人都可以阐明以下几点:
不建议使用HibernateDaoSupport/,HibernateTemplate因为它不必要地将您的代码与Spring类联系起来。
HibernateTemplate
为了集成对Spring管理的事务的支持,在较早版本的Hibernate中不可避免地使用这些类。
但是,从Hibernate 3.0.1开始,您将不再需要它-您可以在使用Spring管理的事务时针对普通的Hibernate API编写代码。您所需要做的就是配置Spring事务支持,在需要使用会话时注入SessionFactory并调用getCurrentSession()它。
SessionFactory
getCurrentSession()
HibernateTemplate异常转换的另一个好处是。如果没有HibernateTemplate相同的功能,则可以通过使用@Repository注释来实现,如Gareth Davis的答案所示。
@Repository
也可以看看: