我有一個場景,我需要刪除一個父實體,並在這樣做時,我需要取消與父級相關聯的引用。在Hibernate中取消瞬態引用
例如我有兩個表/實體人員和地址。 人是父母,地址是孩子(一對多)。 現在,當我刪除人我需要取消地址表中的人引用。
我們是否有任何預定義的註釋來完成這項工作。
任何幫助/建議是高度讚賞。
謝謝。
我有一個場景,我需要刪除一個父實體,並在這樣做時,我需要取消與父級相關聯的引用。在Hibernate中取消瞬態引用
例如我有兩個表/實體人員和地址。 人是父母,地址是孩子(一對多)。 現在,當我刪除人我需要取消地址表中的人引用。
我們是否有任何預定義的註釋來完成這項工作。
任何幫助/建議是高度讚賞。
謝謝。
我看到的最簡單的方法是在刪除後刷新子實體。 由於你的關係是雙向的,你可以使用父對象的@PreRemove方法自動管理這個方法(將所有的childs的父引用設置爲null)。
恕我直言,瞬變這個詞在這裏被濫用,瞬態意味着該屬性不會被持久化,刪除參考應該更合適。
你必須手工進行:
@Entity
public class Person {
...
@OneToMany(mappedBy="person")
public List<Address> addresses;
...
}
@Entity
public class Address {
...
@ManyToOne
public Person person;
...
}
for (Address address: person.addresses) {
address.person = null;
}
session.delete(person);
在JPA
,你** **有手動執行此操作。我強烈懷疑Hibernate可以自動完成它。仍然好奇。 – kostja 2013-04-09 12:42:25