Невозможно получить доступ к данным одной сессии транзакции в другой транзакции
Я использую транзакцию Spring с hibernate jpa. У меня есть одна активная транзакция, внутри которой я создал транзакцию, используя Propogation.RequiredNew, как сделать данные сеанса первой транзакции доступными в следующей транзакции
1 ответ
Сеансы Hibernate могут начинаться и фиксировать несколько транзакций. Вы должны убедиться, что сеанс Hibernate остается открытым на время запроса, а не только для отдельной транзакции.
Я не знаю детали вашей реализации, я думаю, вы можете сделать одно из следующих действий;
- Вы можете достичь этого, используя
OpenSessionInView
шаблон. Это обеспечит открытость вашего сеанса Hibernate для запроса, а не для отдельной транзакции. - Вы можете сохранить открытый сеанс, но затем вам нужно убедиться, что у него нет проблем с параллелизмом, так как объекты сеанса не являются потокобезопасными.