gpt4 book ai didi

java - 当 fetch=FetchType.LAZY 时 Hibernate 断开代理

转载 作者:太空宇宙 更新时间:2023-11-04 08:45:27 24 4
gpt4 key购买 nike

@Entity
public class Master implements Serializable{
private List slaves;
@OneToMany(mappedBy = "Master",fetch=FetchType.LAZY)
public List getSlaves() {
return slaves;
}
}

I want this code to pass.

List m = createQuery("from Master where id=1").getResultList();
for (Master master : m) {
assertNull(master.getSlaves());
}

我希望 getSlaves() 返回 null 并且不初始化代理来连接到数据库(此主服务器有从服务器,我不想从数据库中删除它们)。

有什么方法可以在 Hibernate 或 JPA 中做到这一点吗?

当 fetch 是 EAGER 时,还有办法做到这一点吗?

最佳答案

无声地失败的代理调试起来会很棘手。

看到 hibernate 的代码后,我认为您没有配置它的选项。您可以尝试反射调用collection.setInitialized(),以伪初始化集合,但这会很难看。

关于java - 当 fetch=FetchType.LAZY 时 Hibernate 断开代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439930/

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