【问题标题】:Detached Entity and Managed Entity分离实体和被管理实体
【发布时间】:2012-01-16 12:10:03
【问题描述】:

“分离的实体”是什么意思? 如何在事务期间将托管实体转换为分离实体?

【问题讨论】:

    标签: java database jpa ejb entity


    【解决方案1】:

    分离实体是其状态不能由 JPA 提供者反映的实体。

    换句话说,如果您更改其状态(即通过 setter 方法),这些更改将不会保存到底层数据库,因为 JPA 提供者不必“观察”此类实体。

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

    【讨论】:

    • 请注意,并非所有版本的 JPA 实现都提供分离功能
    【解决方案2】:

    Here您可以阅读有关 JPA 实体生命周期的信息。

    例如,可以在序列化或关闭持久性上下文后分离实体。

    【讨论】:

      【解决方案3】:

      实际上,分离的实体是什么意思?

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

      以及如何在事务期间将托管实体转换为分离实体?

      Read here

      【讨论】:

        猜你喜欢
        • 2020-07-30
        • 2015-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-05
        • 2010-10-02
        • 1970-01-01
        • 2018-07-03
        相关资源
        最近更新 更多