【问题标题】:Is the resorting of Insert, Update and Delete Statements a JPA standard, or only Hiberate specific?使用插入、更新和删除语句是 JPA 标准,还是仅特定于 Hibernate?
【发布时间】:2012-04-18 19:22:38
【问题描述】:

Hibernate 按以下顺序对调用刷新时执行的语句进行排序:所有插入、所有更新、所有删除(具体定义见下文)。

我想知道的是,这种行为是 JPA 要求的标准行为并且 Eclipselink 也一样,还是这只是 Hibernate 功能?


Hibernate Reference, Chapter 11.10. Flushing the Session

SQL 语句按以下顺序发出:

  1. 使用 Session.save() 保存相应对象的所有实体插入顺序相同
  2. 所有实体更新
  3. 所有集合删除
  4. 所有集合元素的删除、更新和插入
  5. 所有集合插入
  6. 使用 Session.delete() 删除相应对象的所有实体删除顺序相同

【问题讨论】:

    标签: java hibernate jpa eclipselink


    【解决方案1】:

    任何 JPA 实现都可以在刷新排序方面做它需要的事情;规范没有定义这些东西,只是所有数据都进入数据存储区。并非所有实现都会像 Hibernate 那样对它们进行排序。有些人(例如DataNucleus JPA)是根据纯粹的参照完整性要求来做的,即首先需要什么

    【讨论】:

      猜你喜欢
      • 2011-12-13
      • 2021-01-05
      • 2017-10-27
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 2017-06-13
      • 2019-12-22
      • 2011-07-03
      相关资源
      最近更新 更多