Спящая ленивая загрузка в новой теме - PullRequest
0 голосов
/ 30 июня 2019

У меня есть приложение Spring, которое требуется для большой загрузки данных при входе пользователя. Чтобы пользователю не приходилось ждать загрузки данных, я хочу загрузить это асинхронно. К сожалению, для загрузки этих данных я зависел от некоторых лениво загруженных объектов, что вызывает проблемы с Hibernate, поскольку новый поток не имеет сессии.

Хотя я мог бы загрузить объекты в основном потоке и передать их после загрузки всех полей, я бы предпочел избежать такого многословного подхода. Есть ли способ безопасно загрузить эти ленивые сущности в новом потоке? Или, возможно, у Spring есть способ вернуть ответ клиенту без необходимости закрытия текущего потока?

1 Ответ

0 голосов
/ 02 июля 2019

Я не могу сказать, является ли этот подход оптимальным решением, но с помощью Spring Transactional-annotation для всех методов, используемых для достижения лениво загруженного объекта в новом потоке, в дополнение к методу, который создал новый поток, Я смог сделать эту работу без дополнительного кода.

Конечно, загрузка объекта была также возможной. Поскольку я использовал реализацию JPA в Spring, я просто мог изменить свой вызов .getOne () на вызов .findById ().

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