4
我使用JPA 2和Hibernate 3.6.8作爲實現。JPA /休眠 - 與兒童一起拆卸實體
比方說,我們有一個實體Foo
@Entity
public class Foo {
....
@OneToOne
private Bar bar;
....
}
我需要從會話脫離整個實體圖,當我做entityManager.detach(foo)
,我感到驚訝的是bar
保持附着,這IMO是相當直覺。
閱讀上EntityManager
的文件,看來,這是因爲它沒有提及協會/兒童entites的任何預期的情況下:
從持久化上下文中刪除指定的實體,造成管理實體變得分離。對實體進行的未刷新更改(包括刪除實體)將不會同步到數據庫。先前引用分離實體的實體將繼續引用它。
我也可以簡單地調用entityManager.detach(foo.getBar())
,但這意味着如果稍後添加任何關聯,我將不得不確保手動分離這些關聯。
有沒有方便的方法來實現這一點,而不訴諸反思?
當然......美麗的:)。謝謝JB。 – Asa 2012-01-18 10:36:09