org.hibernate.LazyInitializationException: не удалось инициализировать прокси - Kotlin - PullRequest
0 голосов
/ 06 июня 2019

У меня есть проект, в котором используется kotlin hibernate, моя проблема в том, что я получаю org.hibernate.LazyInitializationException: could not initialize proxy, когда пытаюсь добраться до одной сущности Lazy, выбравшей связанное поле. Я положил @Transactional в метод сервиса, который вызывает метод репозитория.

Если я добавлю Hibernate.initialize(download.content) к сервису, он будет работать нормально, но я хочу этого избежать. И я не могу установить поле сущности Eager.

Мои объекты:

@Entity
class Download(
        user: User,
        subject: String,
        @OneToOne(fetch = FetchType.LAZY, cascade = [CascadeType.ALL]) 
        @JoinColumn(name = "content_id", referencedColumnName = "id") val content: ActionContent
) : Action(user, subject)

@Entity
class ActionContent (
        @Lob val content: String,
        @Id @GeneratedValue var id: Long? = null
)

Кто-нибудь сталкивался с такой же проблемой?

1 Ответ

0 голосов
/ 06 июня 2019

Есть два варианта.

  1. Определить EntityGraph
  2. Используйте JOIN FETCH в своем запросе

Оба запустят загрузку ленивых загруженных кораблей

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