Невозможно получить доступ к данным сеанса одной транзакции в другой транзакции

Я использую транзакцию Spring с hibernate jpa. У меня есть одна активная транзакция, внутри которой я создал транзакцию, используя Propogation.RequiredNew, как сделать данные сеанса первой транзакции доступными в следующей транзакции.


person rajatrj03    schedule 03.07.2017    source источник
comment
Пожалуйста, взгляните на stackoverflow.com/help/how-to-ask.   -  person Evhz    schedule 03.07.2017


Ответы (1)


Сессии Hibernate могут начинаться и совершать несколько транзакций. Вам необходимо убедиться, что ваш сеанс Hibernate остается открытым на время запроса, а не только для отдельной транзакции.

Я не знаю деталей вашей реализации, я думаю, вы можете сделать одно из следующих действий;

  1. Вы можете добиться этого, используя шаблон OpenSessionInView. Это гарантирует, что ваш сеанс Hibernate останется открытым для запроса, а не для отдельной транзакции.
  2. Вы можете сохранить открытый сеанс, но тогда вам нужно убедиться, что у него нет проблем с параллелизмом, поскольку объекты сеанса не являются потокобезопасными.
person fabfas    schedule 03.07.2017