您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何解决“无法延迟初始化角色集合”的Hibernate异常

如何解决“无法延迟初始化角色集合”的Hibernate异常

如果你知道Comment每次检索a时都希望看到全部,Topic则将字段映射更改为comments

@OneToMany(fetch = FetchType.EAGER, mappedBy = "topic", cascade = CascadeType.ALL)
private Collection<Comment> comments = new LinkedHashSet<Comment>();

认情况下,集合是延迟加载的。

根据我的经验,我有以下方法解决LazyInitializationException:

(1)使用Hibernate.initialize

Hibernate.initialize(topics.getComments());

(2)使用JOIN FETCH

你可以在JPQL中使用JOIN FETCH语法来显式提取子集合。这有点像EAGER提取

(3)使用OpenSessionInViewFilter

LazyInitializationException经常在视图层中发生。如果使用Spring框架,则可以使用OpenSessionInViewFilter。但是,我不建议你这样做。如果使用不正确,可能会导致性能问题。

其他 2022/1/1 18:21:38 有327人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶