我對OneToMany字段的持久性有困難。這些是我用來測試的兩個簡化類 。Jpa 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);
但是,當我堅持用戶U的phoneNumber的孩子是不是自動持久。在OO方式中,我只需要做一對多的組合。
我使用EclipseLink。
非常感謝大家的提示。
它還挺奇怪的 - 這樣的例子工程在我的情況(的EclipseLink)的罰款。最後,你只是EntityManager#堅持(U)? 你怎麼知道這個值沒有被持久化 - 在數據庫中檢查或以某種方式查詢實體?你嘗試刷新EntityManager嗎? –