1

Hibernate 按以下顺序对调用刷新时执行的语句进行排序:所有插入,所有更新,所有删除(请参阅下面的确切定义)。

我想知道的是,这种行为是 JPA 要求的标准行为并且 Eclipselink 是否相同,或者这只是 Hibernate 功能?


休眠参考,第 11.10 章。刷新会话

SQL 语句按以下顺序发出:

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

1 回答 1

1

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

于 2012-04-19T06:27:50.560 回答