gpt4 book ai didi

java - 从我的对象中清除 Hibernate 但不要延迟加载

转载 作者:行者123 更新时间:2023-11-29 06:11:44 25 4
gpt4 key购买 nike

我有一个 JPA+Hibernate 实体,我需要通过 RMI 将其发送到不了解 Hibernate 的客户端,因此我创建了一个方法来从中“清除”Hibernate:

// shortened
public class Player {
private Set<Item> ownedItems;
public void makeSerializable() {
ownedItems = new HashSet<Item>(ownedItems);
}
}

但是,当我调用 makeSerializable 时,Hibernate 将尝试延迟加载 ownedItems(如果它尚未加载),这是我不希望的,也是不可能的,因为有 hibernate session 。相反,如果未加载 ownedItems,我想将其设置为 null 或空集。

我该怎么做?

最佳答案

if (!Hibernate.isInitialized(ownedItems)) {
ownedItems = new HashSet<Item>();
}

这是在不需要 session 的情况下测试集合是否已初始化的方法。

关于java - 从我的对象中清除 Hibernate 但不要延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6546482/

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