2013-04-09 29 views
0

我有一個場景,我需要刪除一個父實體,並在這樣做時,我需要取消與父級相關聯的引用。在Hibernate中取消瞬態引用

例如我有兩個表/實體人員和地址。 人是父母,地址是孩子(一對多)。 現在,當我刪除人我需要取消地址表中的人引用。

我們是否有任何預定義的註釋來完成這項工作。

任何幫助/建議是高度讚賞。

謝謝。

+1

,你** **有手動執行此操作。我強烈懷疑Hibernate可以自動完成它。仍然好奇。 – kostja 2013-04-09 12:42:25

回答

0

我看到的最簡單的方法是在刪除後刷新子實體。 由於你的關係是雙向的,你可以使用父對象的@PreRemove方法自動管理這個方法(將所有的childs的父引用設置爲null)。

恕我直言,瞬變這個詞在這裏被濫用,瞬態意味着該屬性不會被持久化,刪除參考應該更合適。

0

你必須手工進行:

@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
相關問題