有没有办法禁用Hibernate乐观锁定?

时间:2016-01-15 08:43:02

标签: java hibernate

我有一个实体:

@Entity
public class VersionedDo {
    @Version
    @Column(name = "version")
    private int version;
    ...
}

我希望在某些情况下更新此实体而不增加版本。没有直接的SQL更新,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

来自Hibernate documentation

  

禁止您的应用程序更改Hibernate设置的版本号。

     

要人为增加版本号,请参阅Hibernate Entity Manager参考文档中的属性文档LockModeType.OPTIMISTIC_FORCE_INCREMENTLockModeType.PESSIMISTIC_FORCE_INCREMENTcheck

因此,使用Hibernate,我猜你不能强制版本字段在更新时保持其原始值。你只能做相反的事情。

您必须使用经典的SQL查询,不要忘记"刷新"如果需要,你的Hibernate对象。