如果我使用的话有什么区别吗
@OneToMany
public Set<Rating> ratings;
或者如果我使用
@OneToMany
public List<Rating> ratings;
两者都工作正常,我知道列表和集合之间的区别,但是我不知道这是否会影响 hibernate(或更确切地说 JPA 2.0)处理它的方式。
如果没有指定索引列,列表将被 Hibernate 作为包处理(无特定顺序)。
Hibernate 处理中的一个显着差异是您无法在单个查询中获取两个不同的列表。例如,如果您有一个Person
如果实体具有联系人列表和地址列表,您将无法使用单个查询来加载人员及其所有联系人和所有地址。这种情况下的解决方案是进行两次查询(这避免了笛卡尔积),或者使用Set
代替List
至少其中一个集合。
当您必须定义时,通常很难将 Sets 与 Hibernate 一起使用equals
and hashCode
在实体上并且实体中没有不可变的功能键。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)