我有一对多的双向关系。当我从表中检索父对象时,应检索所有子对象,但只检索第一个子对象 父母看起来像
@Entity
public class xyz{
@OneToMany(mappedBy="xyz",cascade=CascadeType.PERSIST,fetch=FetchType.EAGER)
private Set<zyx> zyxDO;}
子类看起来像
public class zyx{
@ManyToOne
@JoinColumn(name="id")
private xyz xyzDO;
}
是否有任何注释可以检索基础数据库的所有行
答案 0 :(得分:2)
也许这是一个拼写错误,但mappedBy的值应该是拥有实体中指向反向实体的属性的名称,在本例中为xyzDO。
也许是因为你使用的是Set而不是Collection会导致只检索到一个孩子(如果它们是相同的)。
答案 1 :(得分:0)
检索底层数据库的所有行是什么意思?您只检索父级密钥集的子项。另请注意,fetch eager很容易导致出现性能问题,因为即使您不需要它们,也会始终提取子项。
答案 2 :(得分:0)
确保在添加/设置关系时设置关系的两面。