分离实体和被管理实体
Posted
技术标签:
【中文标题】分离实体和被管理实体【英文标题】:Detached Entity and Managed Entity 【发布时间】:2012-01-16 12:10:03 【问题描述】:“分离的实体”是什么意思? 如何在事务期间将托管实体转换为分离实体?
【问题讨论】:
【参考方案1】:分离实体是其状态不能由 JPA 提供者反映的实体。
换句话说,如果您更改其状态(即通过 setter 方法),这些更改将不会保存到底层数据库,因为 JPA 提供者不必“观察”此类实体。
如果实体 E1 是托管实体,您可以使其分离调用(非常合理的命名)方法 EntityManager#detach(E1)
。您还可以使用EntityManager#clear()
,它将清除整个 PersistenceContext 并有效地使所有托管实体分离。
【讨论】:
请注意,并非所有版本的 JPA 实现都提供分离功能【参考方案2】:Here您可以阅读有关 JPA 实体生命周期的信息。
例如,可以在序列化或关闭持久性上下文后分离实体。
【讨论】:
【参考方案3】:实际上,分离的实体是什么意思?
分离的实体对象是处于特殊状态的对象,它们不受任何EntityManager
管理,但仍表示数据库中的对象。阅读更多source
以及如何在事务期间将托管实体转换为分离实体?
Read here
【讨论】:
以上是关于分离实体和被管理实体的主要内容,如果未能解决你的问题,请参考以下文章