【问题标题】:Difference between JPA merge and Hibernate Update API?JPA 合并和 Hibernate 更新 API 之间的区别?
【发布时间】:2013-01-18 09:58:50
【问题描述】:

我会说到重点。 我是 JPA 的 Hibernate 的新手。我不知道 Hibernate update() API 和 JPA merge() API 之间的区别。这两个 API 有什么区别吗?

【问题讨论】:

    标签: hibernate jpa


    【解决方案1】:

    【讨论】:

      【解决方案2】:
      • 更新

        • 在瞬态:异常
        • 处于分离状态:
          • 如果附加实例已存在:异常
          • 否则更新持久状态并附加给定实例
      • 合并

        • 在瞬态:更新持久状态,返回一个附加的实例,让给定的实例保持不变(和分离)
        • 处于分离状态:
          • 如果附加实例已存在:将给定分离实例的值复制到附加实例,让给定实例保持不变(并分离)
          • 否则更新持久状态,返回一个附加的实例,让给定的实例保持不变(和分离)

      另见hibernate update vs JPA merge on detached instance

      【讨论】:

        【解决方案3】:

        update() 方法可用于持久和分离状态的对象。但是,实际上我无法想象在持久状态下使用 update() 的场景,其中您将对象加载到会话中修改它并在同一会话中使用 update()。

        就 merge() 而言,它仅用于分离的对象。 update() 和 merge() 方法在分离状态下的工作方式略有不同。这种差异在以下位置通过示例进行了详细说明:

        http://javahotpot.blogspot.in/2014/03/hibernate-difference-between-update-and.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-01
          • 2013-02-06
          • 2013-04-30
          • 1970-01-01
          • 2011-11-17
          • 1970-01-01
          • 2015-06-03
          • 2011-03-25
          相关资源
          最近更新 更多