Область Hibernate Session в транзакциях JTA против Open-Session-In-View

Правильно ли говорить, что используя JTA Сделки с Hibernate контрастирует с использованием Open-Session-In-View Что касается объема сессии?
Из того, что я смог собрать сессионный объем в JTA Транзакции - это транзакция (в основном на основе этой ссылки), в то время как в Open-Session-In-View шаблон является самой требовательной областью сеанса, и в ней может быть несколько транзакций.

Я прошу, во-первых, чтобы понять, а во-вторых, чтобы проверить, "Кто" отвечает за обработку сеанса при использовании JTA,
В настоящее время при использовании Open-Session-In-View, У меня есть HibernateUtil класс, который обрабатывает открытие, получение и закрытие сессий (через ThreadLocal<Session>).
Когда я переключусь на использование JTA будут Hibernate обрабатывать вышеуказанные действия сессии? (как производная от моего вызова userTransaction.begin,userTransaction.rollback)

Кстати, я спрашиваю о JTA как мне нужно согласовать транзакцию через HibernateJMS а также EHCache так что это не общий вопрос передового опыта "Let's-Use-JTA".

Еффей

1 ответ

Что ж, если вы используете JTA, то за транзакции отвечает менеджер JTA (обычно контейнер EJB3).

Как правило, используется та же старая модель с открытыми транзакциями, но с UserTransaction и, скажем, клиент SWING может иметь длительные транзакции, охватывающие несколько запросов (хотя в целом это плохая практика).

Кстати, я спрашиваю о JTA, так как мне нужно координировать транзакции через Hibernate JMS и EHCache, так что это не является общим вопросом о лучших практиках "let-use-JTA".

Удачи. Я обнаружил, что внешний менеджер транзакций (я использовал Atomikos) + Spring работал лучше для моих нужд, чем JBoss.

Другие вопросы по тегам