我对某事很好奇。比方说,我们有一个简单的关系员工之间电话:如果关系中的表为空,Hibernate是否返回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())
{
...
}
请问吸气retun NULL或空集,并会在getching战略中发挥作用。
如果我没有记错的话,hibernate有它自己的使用代理的集合的实现,并且对于获取,它实例化其中的一个,当需要的时候从表中检索数据(正确的如果我错了)。所以在调用getter的时候,试着从表中检索数据,得到一个空集合并返回一个空集合。 (这是我认为的)。或者我应该总是检查吸气剂的结果是否为NULL?
很可能是一个空的列表。返回'null'而不是空列表是一种不好的做法。 – Tunaki
如果手机为空,您可以随时在您的获取方中进行检查并返回空列表 – arados
是的,我将最终但无法访问我的笔记本电脑,并且一段时间都无法访问。正在和一些朋友讨论一些事情,我们需要知道。我知道这听起来很懒惰,但如果我现在可以检查它,我会...对不起 –