有没有一种方法可以禁用Hibernate的乐观锁定?

4

我有一个实体:

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

在某些情况下,我希望更新此实体而不增加版本。是否有任何方法可以在不直接使用SQL更新的情况下完成?

1个回答

0

来自 Hibernate 文档

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

要人为地增加版本号,请参阅 Hibernate 实体管理器参考文档中的属性 LockModeType.OPTIMISTIC_FORCE_INCREMENTLockModeType.PESSIMISTIC_FORCE_INCREMENTcheck

因此,使用 Hibernate,我猜你不能强制一个版本字段保持其原始值进行更新。你只能做相反的操作。

你将不得不使用经典的 SQL 查询,并在必要时“刷新”你的 Hibernate 对象。


但我不想更改版本,我只想在某些情况下禁用版本增量。 - Roman Poterin
Hibernate会自动递增版本号,所以如果你想保留先前的值,那就是“更改”。至少,这是我对Hibernate文档的理解。 - Gaël J

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接