如果关系表中为空,休眠是否返回 null 或空集合?
我对一些事情感到好奇。假设我们在员工和电话之间有一个简单的关系:
@Entity
public class Employee {
@Id
@Column(name="EMP_ID")
private long id;
...
@OneToMany(mappedBy="owner")
private List<Phone> phones;
...
}
@Entity
public class Phone {
@Id
private long id;
...
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="OWNER_ID")
private Employee owner;
...
}
假设员工没有电话,电话表中没有条目。如果我有一段代码,可以获取员工的电话并出于任何原因对其进行迭代
for (Phone phone : employee.getPhones())
{
...
}
getter 是否会重新调谐 NULL 或空集合,并且 getching 策略会发挥作用吗?
如果我没记错的话,休眠有它自己的使用代理收集的实现,对于LAZY fetch,它使用其中之一进行实例化,并在需要时从表中检索数据(如果我错了,则正确)。因此,在调用 getter 时,请尝试从表中检索数据,获取一个空集作为结果并返回一个空集合。(这是我的想法)。或者我应该始终检查 getter 的结果是否为 NULL?