我试图了解HibernateDAOSupport通过HibernateTemplate提供的好处。 HibernateTemplate几乎可以做任何事情。那么为什么我们需要扩展HibernateDAOSupport和getHibernateTemplate并执行操作而不是注入hibernateTemplate并执行操作。当DAO类扩展HibernateDAOSupport时,我们获得的好处是什么。
我知道不建议再使用HibernateDAOSupport和HibernateTemplate,只是想了解其中的区别。
答案 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;博士;
这些只是很久以前的遗留问题。如果你不是考古学家,请不要担心。