我有一个实体:
@Entity
public class VersionedDo {
@Version
@Column(name = "version")
private int version;
...
}
在某些情况下,我希望更新此实体而不增加版本。是否有任何方法可以在不直接使用SQL更新的情况下完成?
来自 Hibernate 文档:
你的应用程序被禁止更改 Hibernate 设置的版本号。
要人为地增加版本号,请参阅 Hibernate 实体管理器参考文档中的属性
LockModeType.OPTIMISTIC_FORCE_INCREMENT
或LockModeType.PESSIMISTIC_FORCE_INCREMENTcheck
。
因此,使用 Hibernate,我猜你不能强制一个版本字段保持其原始值进行更新。你只能做相反的操作。
你将不得不使用经典的 SQL 查询,并在必要时“刷新”你的 Hibernate 对象。