hibernate - org.hibernate.LazyInitializationException:无法初始化代理 - 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
)
有没有人遇到过同样的问题?
解决方案
有两种选择。
- 定义一个实体图
- 在查询中使用 JOIN FETCH
两者都将触发延迟加载的 realtionships 的加载
推荐阅读
- reactjs - 如何制作查克拉的
组件内联? - nginx - 为 nginx 服务器启用客户端证书身份验证时无法验证证书
- javascript - 如何在摩纳哥使用 addExtraLib 添加 lodash 库
- c++ - MySQL 库在 C++ 中使用 cmake
- firebase - iOS 14.5 App Tracking Transparency for firebase log in react-native app
- angular - npm install ngx-image-zoom 依赖错误 - 解决的最佳方法 - 无法解决依赖错误
- java - Android 库在最新更新后停止工作
- c# - SQL数据库中如何使用SELECT+参数+FROM?
- angular - ng-content 中的组件未使用自定义元素 Angular 加载
- angular - 当类别页面加载角度时按类别过滤产品