gpt4 book ai didi

java - Hibernate 中的空集合与空集合

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:14:45 25 4
gpt4 key购买 nike

假设我有以下 Hibernate 映射类:

public class ClassA {       
@OneToMany(fetch=EAGER)
private List<ClassB> bList;
}

当我从 Hibernate session 中读取 ClassA 的对象时,bList 字段按预期使用 PersistentList 对象进行初始化。

我发现自己有一个要求,在列表为空的情况下,我需要 Hibernate 将 bList 字段初始化为 null,而不是用一个空的 持久列表。理论上,Hibernate 拥有执行此操作所需的信息,因为列表上的获取是急切的。问题是根据 section 6.1 of the Hibernate docs :

Collection-valued properties do not support null value semantics because Hibernate does not distinguish between a null collection reference and an empty collection.

这很有道理,但我希望有人能想出一个巧妙的计谋来克服这个限制。我在想也许某些监听器/回调机制可以让我用空引用替换空列表。

最佳答案

您是否尝试检查 getbList() 方法?你可以这样做:

if(bList.isEmpty()) 
return null;
return bList;

Hibernate 将始终为您的引用创建一个对象,但您可以控制 getter 和 setter 内部的数据。如果列表有 0 个元素,您始终可以返回 null。

关于java - Hibernate 中的空集合与空集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1454846/

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