@ManyToOne关系,JPA

时间:2011-08-24 12:27:11

标签: java jpa

我有一对多的双向关系。当我从表中检索父对象时,应检索所有子对象,但只检索第一个子对象 父母看起来像

@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;
}

是否有任何注释可以检索基础数据库的所有行

3 个答案:

答案 0 :(得分:2)

也许这是一个拼写错误,但mappedBy的值应该是拥有实体中指向反向实体的属性的名称,在本例中为xyzDO。

也许是因为你使用的是Set而不是Collection会导致只检索到一个孩子(如果它们是相同的)。

答案 1 :(得分:0)

检索底层数据库的所有行是什么意思?您只检索父级密钥集的子项。另请注意,fetch eager很容易导致出现性能问题,因为即使您不需要它们,也会始终提取子项。

答案 2 :(得分:0)

确保在添加/设置关系时设置关系的两面。