我对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;
...
}
Run Code Online (Sandbox Code Playgroud)
所以我想这样做:
User u = new User();
PhoneNumber p = new PhoneNumber();
u.setName("Alan");
u.getPhoneNumbers.add(p);
Run Code Online (Sandbox Code Playgroud)
但是当我坚持用户时,phoneNumber孩子不会自动保留.以OO的方式,我只需要做一对多的构图.
我使用EclipseLink.
非常感谢所有人的提示.
您需要建立两个方向的关系。添加p.setUser(u)
到您的代码:
User u = new User();
PhoneNumber p = new PhoneNumber();
u.setName("Alan");
u.getPhoneNumbers.add(p);
p.setUser(u);
Run Code Online (Sandbox Code Playgroud)