我不認爲存在以下情況,但認爲這值得問。從數據庫中刪除獨立的實體
說我有一個具有以下屬性的實體Contact
:
@OneToMany(cascade = {CascadeType.ALL})
private List<Address> addresses;
假設一個Address
是獨一無二的,因此可以不屬於任何其他Contact
。顯然,我可以使用級聯,以便在Contact
上執行的操作級聯到Address
,但是如果從List<Address> addresses
中刪除,則會從DB中刪除Address
註釋。
EG。 A Contact
List<Address> addresses
property contains 3 Address
values; Address#1
,Address#2
和Address#3
。
Address#3
被刪除,Contact
被合併回使用實體管理器的數據庫。此時Address#3
仍然存在於數據庫中,但不再與任何關聯。我總是手動處理這個問題,但它讓我覺得它是一個相對常見的事件(至少對我來說),並且可能會有一個註釋來解決這個問題。
你正在尋找[孤兒消除](http://nsinfra.blogspot.de/2013/03/jpa-20-hibernate-orphanremoval-true.html)? – John