hibernate JTASessionContext против ThreadLocalSessionContext - PullRequest
2 голосов
/ 16 января 2011

В чем разница между org.hibernate.context.JTASessionContext и org.hibernate.context.ThreadLocalSessionContex?

Ответы [ 2 ]

3 голосов
/ 16 января 2011

При ThreadLocalSessionContext текущий сеанс (sessionFactory.getCurrentSession()) создается и сохраняется в ThreadLocal.Это работает в любой среде, потому что ThreadLocal - это JavaSE.

JTASessionContext привязывает текущий сеанс к транзакции JTA.Транзакция JTA обеспечивает ловушку для очистки, в отличие от локального потока.Это доступно в средах с JTA, таких как сервер приложений.

Все это объясняется в javadocs двух классов. здесь и здесь

1 голос
/ 16 января 2011

Эти стратегии управляют поведением SessionFactory.getCurrentSession(), определяя область действия текущего сеанса.

  • JTASessionContext связывает текущий сеанс с текущей транзакцией JTA и закрывает его в конце транзакции JTA.Эта стратегия используется в средах с поддержкой JTA, т.е. на серверах приложений.
  • ThreadLocalSessionContext связывает текущий сеанс с текущим потоком и закрывает его в конце транзакции, созданной в этом сеансе.Он предназначен для использования в автономных средах.

Между прочим, Javadoc и справочник описывают это довольно ясно.

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...