2011-12-09 85 views

回答

17

一个离散的实体是哪个状态不能由JPA提供被反射的实体。换句话说,如果您更改其状态(即通过setters方法),这些更改将不会保存到底层数据库,因为JPA提供程序不必“观察”这些实体。

如果实体E1是一个托管实体,您可以使它分离调用(非常合理命名)的方法EntityManager#detach(E1)。您也可以使用EntityManager#clear()这将清除整个PersistenceContext并有效地使所有管理实体分离。

+1

请注意,并非所有版本的JPA实现都提供分离 –

5

Here你可以阅读关于JPA实体生命周期。例如,在序列化或关闭持久性上下文之后,实体可以被分离。

9

实际上,分离实体是指什么?

分离的实体对象是处于特殊状态的对象,它们不受任何EntityManager管理,但仍表示数据库中的对象。阅读更多source

以及在事务过程中如何将托管实体转换为分离的实体?

Read here