- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个实体:
@Entity
public class VersionedDo {
@Version
@Column(name = "version")
private int version;
...
}
在某些情况下,我想在不增加版本的情况下更新这个实体。有什么办法可以不直接更新 SQL 吗?
最佳答案
来自 hibernate documentation :
Your application is forbidden from altering the version number set by Hibernate.
To artificially increase the version number, see the documentation for properties
LockModeType.OPTIMISTIC_FORCE_INCREMENT
orLockModeType.PESSIMISTIC_FORCE_INCREMENTcheck
in the Hibernate Entity Manager reference documentation.
因此,使用 Hibernate,我猜你不能强制版本字段在更新时保持其原始值。你只能反其道而行之。
您必须使用经典的 SQL 查询,并且不要忘记在需要时“刷新”您的 Hibernate 对象。
关于java - 有没有办法禁用 Hibernate 乐观锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34807177/
我正在编写一个 Web 应用程序,两个不同的用户可以在其中更新事物列表,例如待办事项列表。我已经意识到,乐观锁定机制效果最好,因为我不希望出现高争用情况。 我一直在查看事务隔离级别,现在我有点困惑。看
这个问题在这里已经有了答案: Pessimistic versus Optimistic Concurrency (Locking versus Feedback) (3 个答案) 关闭 8 年前。
我是一名优秀的程序员,十分优秀!