Главная » Spring » Транзакции Hibernate Spring

0

Если для доступа к хранилищу данных приложение использу- ет фреймворк Hibernate, тогда должен использоваться диспетчер HibernateTransactionManager. При работе с версией Hibernate 3 в опре- деление контекста приложения необходимо добавить следующее определение элемента <bean>:

<bean id="transactionManager" class="org.springframework.

➥orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory"/>

</bean>

Свойство sessionFactory должно быть связано с компонентом типа SessionFactory Hibernate, который в данном случае имеет недвусмыс- ленное имя sessionFactory. Подробности о настройке фабрики сеан- сов в Hibernate можно найти в предыдущей главе.

Что делать, если используется Hibernate 2? При использовании бо- лее старой версии механизма доступа к хранилищам данных Hibernate 2, в Spring 3.0 или Spring 2.5 не получится задействовать диспетчера HibernateTransactionManager. В этих версиях Spring отсутствует поддержка Hibernate 2. Если использование старой версии Hibernate является обя- зательным условием, придется вернуться к версии Spring 2.0.

Однако следует понимать, что при возврате к более старой версии Spring, чтобы иметь возможность пользоваться более старой версией Hibernate, теряется масса новых возможностей фреймворка Spring, обсуждаемых в этой книге. Поэтому, прежде чем откатываться к более старой версии Spring, я рекомендую попробовать обновить версию Hibernate.

Диспетчер HibernateTransactionManager возлагает всю ответствен- ность за управление транзакциями на объект org.hibernate.Transaction, который он получает из объекта сеанса Hibernate. В случае успешно- го выполнения транзакция подтверждается вызовом метода commit() объекта Transaction. Аналогично, в случае неудачи, отмена транзак- ции производится вызовом метода rollback() объекта Transaction.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии