HibernateDAOSupport vs HibernateTemplate

时间:2015-06-14 01:26:47

标签: hibernate spring-transactions spring-orm

我试图了解HibernateDAOSupport通过HibernateTemplate提供的好处。 HibernateTemplate几乎可以做任何事情。那么为什么我们需要扩展HibernateDAOSupport和getHibernateTemplate并执行操作而不是注入hibernateTemplate并执行操作。当DAO类扩展HibernateDAOSupport时,我们获得的好处是什么。

我知道不建议再使用HibernateDAOSupport和HibernateTemplate,只是想了解其中的区别。

1 个答案:

答案 0 :(得分:0)

在浏览API之后,这是一个小小的猜测工作:

起初看起来有一个HibernateTemplate完全隐藏了会话,如果你需要访问Session DaoSupport会为你提供。

来自HibernateDaoSupport JavaDoc:

  

此基类主要用于HibernateTemplate用法,但也可以在直接使用Hibernate Session时使用,例如在依赖事务性Sessions时。为该使用方式提供了方便的getSession()和releaseSession(org.hibernate.Session)方法。

但是现在DiberSupport中的getSession方法已被弃用,HibernateSession现在基本上使用相同的方法。因此,DaoSupport中唯一没有出现在模板中的东西似乎是releaseSession,它也被弃用了,但是我无法在HibernateTemplate API中找到它。

TL;博士;

这些只是很久以前的遗留问题。如果你不是考古学家,请不要担心。