HibernateDAOSupport против HibernateTemplate

Я пытаюсь понять преимущество, которое HibernateDAOSupport предоставляет по сравнению с HibernateTemplate. HibernateTemplate в значительной степени делает все. Тогда зачем нам расширять HibernateDAOSupport и getHibernateTemplate и выполнять операции, а не внедрять hibernateTemplate и выполнять операции. Какую пользу мы получаем, когда классы DAO расширяют HibernateDAOSupport.

Я знаю, что больше не рекомендуется использовать HibernateDAOSupport и HibernateTemplate, но просто пытаюсь понять разницу.


person Vaishu13    schedule 14.06.2015    source источник


Ответы (1)


Это небольшая догадка после беглого просмотра API:

Похоже, сначала был HibernateTemplate, который полностью скрывал сеанс, и если вам нужен доступ к сеансу, DaoSupport предложит вам это.

Из HibernateDaoSupport JavaDoc:

Этот базовый класс в основном предназначен для использования HibernateTemplate, но также может использоваться при работе непосредственно с сеансом Hibernate, например, при использовании транзакционных сеансов. Для этого стиля использования предусмотрены удобные методы getSession() и releaseSession(org.hibernate.Session).

Но метод getSession в DaoSupport теперь устарел для HibernateSession, который теперь имеет в основном тот же метод. Таким образом, единственное, что осталось в DaoSupport, чего вы не получаете в шаблоне, похоже, это releaseSession, который также устарел, но я не могу найти его в HibernateTemplate API.

tl;dr;

Это просто пережитки давно минувших дней. Не беспокойтесь, если вы не археолог.

person Jens Schauder    schedule 14.06.2015