2011-12-09 84 views

回答

17

一個離散的實體是哪個狀態不能由JPA提供被反射的實體。換句話說,如果您更改其狀態(即通過setters方法),這些更改將不會保存到底層數據庫,因爲JPA提供程序不必「觀察」這些實體。

如果實體E1是一個託管實體,您可以使它分離調用(非常合理命名)的方法EntityManager#detach(E1)。您也可以使用EntityManager#clear()這將清除整個PersistenceContext並有效地使所有管理實體分離。

+1

請注意,並非所有版本的JPA實現都提供分離 –

5

Here你可以閱讀關於JPA實體生命週期。例如,在序列化或關閉持久性上下文之後,實體可以被分離。

9

實際上,分離實體是指什麼?

分離的實體對象是處於特殊狀態的對象,它們不受任何EntityManager管理,但仍表示數據庫中的對象。閱讀更多source

以及在事務過程中如何將託管實體轉換爲分離的實體?

Read here