Spring + Hibernate + JTA - HibernateTransactionManager или JTATransactionManager - PullRequest
3 голосов
/ 09 мая 2011

Я хочу интегрировать Spring и Hibernate и использовать JTA для управления транзакциями. Я также хотел бы делегировать обработку транзакций на сервер приложений, которым в моем случае является JBoss. У меня есть запрос относительно конфигурации bean-компонента " TransactionsManager " в Spring:

1) Можем ли мы использовать HibernateTransactionManager и установить свойства hibernate.transaction.factory_class и hibernate.transaction.manager_lookup_class в файле hibernate.properties? Если нет, то почему?

2) Или мы должны использовать JTATransactionManager ?

В варианте (2) нам все еще нужно установить свойства ("hibernate.transaction.factory_class", "hibernate.transaction.manager_lookup_class") в hibernate.properties ?

Спасибо.

1 Ответ

4 голосов
/ 09 мая 2011

Если вы хотите делегировать серверу приложений, вы должны использовать JTATransactionManager, насколько мне известно, HibernateTransactionManager не является менеджером транзакций JTA.

Реализация PlatformTransactionManager для одного Hibernate SessionFactory. Связывает сеанс Hibernate из указанной фабрики с потоком, потенциально позволяя один сеанс с привязкой к потоку на фабрику. SessionFactoryUtils и HibernateTemplate знают о связанных с потоками сессиях и участвуют в таких транзакциях автоматически. Использование любого из них или прохождение SessionFactory.getCurrentSession () требуется для кода доступа Hibernate, который должен поддерживать этот механизм обработки транзакций.

...