Что такое контекстные сеансы в спящем режиме? - PullRequest
5 голосов
/ 24 октября 2011
  1. Что такое контекстный сеанс в Hibernate?
  2. Когда я создавал и закрывал сеансы между использованием контекстных интерфейсов реализации сеансов?

Ответы [ 2 ]

9 голосов
/ 24 октября 2011

Думайте о Contextual Session Hibernate как о сопоставлении текущего сеанса с контекстом пользователя.

Например: одна транзакция может быть таким контекстом, следовательно, если жизненный цикл сеанса Hibernate соответствует жизненному циклу этой транзакции, сеанс можно назвать контекстным, где одна транзакция определяет такой context. Иногда этот конкретный случай обозначается как session-per-request модель.

Интерфейс Hibernate CurrentSessionContext предназначен для сопоставления текущего сеанса (например, SessionFactory.getCurrentSession()) с различными контекстами. Этот интерфейс имеет 3 реализации:

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

  • ThreadLocalSessionContext : текущие сеансы отслеживаются потоком выполнения. См. Javadocs для деталей.

  • ManagedSessionContext : текущие сеансы отслеживаются потоком выполнения. Однако вы обязаны связать и отменить привязку экземпляра Session со статическими методами для этого класса: он не открывает, не очищает и не закрывает Session

Взгляните на текущую сессию Architecture в документации Hibernate для более "официальных" подробностей.

1 голос
/ 11 февраля 2012

Еще одна очень хорошая ссылка, объясняющая концепцию Hibernate Contextual Session

http://relation.to/2037.lace

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