什么是“独立实体”? 如何在事务期间将托管实体转换为分离的实体?
答案 0 :(得分:20)
分离实体是JPA提供者不得反映其状态的实体。
换句话说,如果您更改其状态(即通过setter方法),这些更改将不会保存到基础数据库,因为JPA提供程序不必“观察”此类实体。
如果实体E1是托管实体,您可以使其分离调用(非常合理命名)方法EntityManager#detach(E1)
。您还可以使用EntityManager#clear()
清除整个PersistenceContext并有效地使所有托管实体分离。
答案 1 :(得分:9)
实际上,分离的实体是什么意思?
分离的实体对象是处于特殊状态的对象,它们不由任何EntityManager
管理,但仍然代表数据库中的对象。阅读更多source
以及如何在事务期间将托管实体转换为分离的实体?
答案 2 :(得分:6)
Here您可以阅读有关JPA实体生命周期的内容。
例如,在序列化或关闭持久化上下文后,可以分离实体。