Jpa OneToMany不会坚持孩子

时间:2011-10-27 10:16:39

标签: jpa jpa-2.0

我在OneToMany字段的持久性方面遇到了麻烦。这是两个简化的类 我正在考试。

public class User implements Serializable {
...
private String name;
...
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<PhoneNumber> phoneNumbers;
...
}

public class PhoneNumber implements Serializable {
...
private String phoneNumber;
...
@ManyToOne()
private User  user;
...
}

所以我想这样做:

User u = new User();
PhoneNumber p = new PhoneNumber();
u.setName("Alan");
u.getPhoneNumbers.add(p);

但是当我坚持用户时,phoneNumber孩子不会自动保留。 以OO的方式,我只需要做一对多的组合。

我使用EclipseLink。

非常感谢大家提示。

1 个答案:

答案 0 :(得分:2)

您需要在两个方向上建立关系。将p.setUser(u)添加到您的代码中:

User u = new User();
PhoneNumber p = new PhoneNumber();
u.setName("Alan");
u.getPhoneNumbers.add(p);
p.setUser(u);