@Zunga

Hibernate ( FetchType.LAZY и закрытие сессии)?

Всем привет, столкнулся с такой проблемой.
В проекте используется Hibernate и HikariCP(пул соединений), база данных PostgresSQL.
Вообщем во всех объектах используется ленивая загрузка связных данных, но тут возникает проблема с закрытием сесcии.
Т.е получая данные, я не могу написать session.close(); Так как часть связных данных подтянется позже. И я получу исключение:
"org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.slandshow.models.Train.seats, could not initialize proxy - no Session"

В интернетах пишут, что можно использовать FetchType.EAGER - но мне этот подход не подходит по соображениям производительности.

Т.к сессии не закрываются, единственное, что остается это увеличить пул соединений на несколько тысяч. Но это тоже как-то не айс.

Может кто подскажет, как решить данную проблему?
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
xez
@xez
TL Junior Roo
Можно использовать DTO и несколько методов его заполнения: одни для объекта без вложенных данных, другие для объекта с вложенными данными ( или их частью).
Все равно вы будете сериализовать объект - на этом этапе уже должно быть понятно его содержание.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы