我有一個多對一關係的家長實體與兒童實體:如何避免與JPA級聯重複?
@Entity class Parent {
// ...
@ManyToOne((cascade = {CascadeType.ALL})
private Child child;
// ...
}
的兒童有一個獨特的領域:
@Entity class Child {
// ...
@Column(unique = true)
private String name;
// ...
}
當我需要一個新的孩子,我問ChildDAO冷杉ST:
Child child = childDao.findByName(name);
if(child == null) {
child = new Child(name);
}
Parent parent = new Parent();
parent.setChild(child);
的問題是,如果我不喜歡上面兩次(與爲兒童相同的名稱),只有在堅持到底的家長,我得到一個約束的例外。這看起來很正常,因爲最初數據庫中沒有具有指定名稱的子項。
問題是,我不知道什麼是避免這種情況的最好方法。
你確定你的模型好嗎?孩子可以有很多父母,父母只能有一個孩子? –
我的答案假設一對一的關係 - 上面的評論是絕對正確的,它是一個奇怪的名字,如果它是正確的。 –
是的,模型是正確的。我將這些實體重新命名爲例子,看起來我可以做得更好。 – Cos64