我们有两个表,一个表(叫它B)用外键引用另一个表(A)。
因此,当更改和更新B型实体的字段时,Hibernate也会更新A型引用的实体。
到目前为止,一切都很好。现在我们有两个线程。线程一正在处理类型A的实体并更改字段。另一个线程(线程2)在类型B的分离实体(和未被触摸的类型A的分离引用实体)上工作。
在更新第二个线程中的实体B 之前,我们获得了实体A的当前值。如果现在A更改并在两次线程更新检查和更新B之间的时间进行了更新,则从A中的线程一丢失。
14
我们发现没有可行的方法来防止Hibernate也将A存储在线程2中。我们提出的所有想法听起来都很难看: