JPA父实体忽略子实体版本控制

时间:2017-01-17 12:08:53

标签: hibernate jpa

我有2个实体类:

包含与子项的1-1关系的父项(没有用于乐观锁定的@Version):

@Entity
public class Poo {
...
@OneToOne(cascade = ALL, fetch = FetchType.LAZY, mappedBy = "mapping_column")
private Foo foo;
...
}

这里是子类(具有乐观锁定的@Version):

@Entity
public class Foo {
...
@Version
@Column(name="optlock")
private Integer optLock;
...
}

更新父实体的某些字段时,在另一个进程更改了子实体之间,因此按预期增加了optlock。

但这会产生问题,因为它会阻止父实体的更新,即使更新没有触及子项:

...
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction
...

如果没有更改子实体,有更多直接的方法可以防止检查版本控制吗?因为最终DB中没有更新。

0 个答案:

没有答案
相关问题