org.hibernate.LazyInitializationException:无法初始化代理-Kotlin

时间:2019-06-06 09:04:20

标签: hibernate jpa kotlin

我有一个项目,其中一起使用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 :(得分:0)

有两个选项。

  1. 定义EntityGraph
  2. 在查询中使用JOIN FETCH

两者都将触发延迟加载的房地产的加载