gpt4 book ai didi

java - hibernate : failed to lazily initialize a collection

转载 作者:行者123 更新时间:2023-11-30 03:52:55 26 4
gpt4 key购买 nike

我有两个实体:用户和模块,它们使用多对多链接。

在我的用户实体中,我有一个模块列表成员:

enter image description here

我成功插入了一个新用户,但是当我想检索用户时,我得到了用户信息,但没有得到用户的模块。我收到此错误消息:

.hibernate.LazyInitializationException:无法延迟初始化角色集合:ma.propar.FireApp.Entites.Utilisateur.modules,无法初始化代理 - 无 session

最佳答案

user.modules @ManyToMany 列表默认是 LAZY,因此当您获取 users 时,您只会获得一个 user。模块代理。

如果 Hibernate Session 关闭,您将无法访问未初始化的代理,除非获得 LazyInitializationException .

要在同一 HQL 查询中获取模块,您需要使用“fetch”:

select u from Utilisateur u left join fetch u.modules

尽管您可以将关联设置为 FetchType.EAGER,以便始终沿着 Users 检索模块

@ManyToMany(fetch=FetchType.EAGER)

shouldn't use EAGER because it's bad for performance .

关于java - hibernate : failed to lazily initialize a collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23932684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com