нужно обработать большое количество сущностей в БД. Получаю порционно из базы и отправляю выполняться обработчик в CompletableFuture с фиксированным тред пулом. Если запускать просто, то тут же получаю ошибку: Hibernate could not initialize proxy – no Session. Почитал гугл, но чет так и не понял как расследовать причины и поправить так, чтобы все работало.
Если добавить свойство spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true, то все хорошо (оно и понятно).
Ну и собственно вопрос - как мне понять где я косячу, чтобы я спокойно мог обрабатывать данные и без установки свойства spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true. Может кто подскажет какой в целом порядок действий по исправлению этой ошибки?
https://www.baeldung.com/hibernate-lazy-loading-workaround Overall, this is not a production-ready feature The recommended approach is to design our application to ensure that data retrieval happens in a single transaction. Я бы сказал, что в асинхронные обработчики нужно не сущности отправлять, а id сущностей и там уже доставать все что нужно
хм, чет не подумал про это - спасибо за идею.
Обсуждают сегодня