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