2014-02-19 2 views
8

Я использую Hibernate 3.2.6. И я столкнулся исключениеВ чем разница между getHibernateTemplate(). Flush() и getSession(). Flush()

сохранить переходный экземпляр перед промывкой

В моем коде иногда мы используем getSession().flush() и когда мы используем getHibernateTemplate().flush() в одной транзакции.

Не могли бы вы рассказать мне, в чем разница между этими двумя?

+0

http://stackoverflow.com/q/10836265/1031945 –

+1

Если связанный вопрос отвечает на ваши вопросы, пожалуйста, удалите щедрость, чтобы а) вы не потеряли свою репутацию и b) этот вопрос можно закрыть. –

ответ

9

HibernateTemplate устаревший код Spring, начиная с предшествующих весне, переносится в аннотации как предпочтительный метод управления транзакциями. Это не часть самого гиберната. Код шаблона абстрагировался от механики создания, совершения и откат транзакций, позволяя разработчику сосредоточиться исключительно на своей бизнес-логике. HibernateTemplate теперь считается лишним весеннемом сообществом, и был полностью удален в поддержке Spring для Hibernate 4.

Из официальной документации:

Примечания: По состоянию на Hibernate 3.0.1, транзакционный Hibernate кода доступа также может быть закодирован в обычном стиле Hibernate. Следовательно, для недавно начатых проектов подумайте о том, чтобы вместо этого использовать стандартный тип Hibernate3 для кодирования данных, основанный на SessionFactory.getCurrentSession().

Ваш код, скорее всего, является неправильным кодом устаревшего кода и смешанных подходов среди разработчиков во время перехода.

Смежные вопросы