防止Hibernate更新引用的实体

时间:2019-11-13 12:08:43

标签: hibernate jpa

我们有两个表,一个表(叫它B)用外键引用另一个表(A)。

因此,当更改和更新B型实体的字段时,Hibernate也会更新A型引用的实体。

到目前为止,一切都很好。现在我们有两个线程。线程一正在处理类型A的实体并更改字段。另一个线程(线程2)在类型B的分离实体(和未被触摸的类型A的分离引用实体)上工作。

更新第二个线程中的实体B 之前,我们获得了实体A的当前值。如果现在A更改并在两次线程更新检查和更新B之间的时间进行了更新,则从A中的线程一丢失。

14

我们发现没有可行的方法来防止Hibernate也将A存储在线程2中。我们提出的所有想法听起来都很难看:

  • 创建一个自定义的脏支票,该支票必须知道是否应该更新A
  • 通过本地SQL调用解决休眠状态,仅更新B

0 个答案:

没有答案