gpt4 book ai didi

java - hibernate 。乐观锁。选择版本,即使它生成它

转载 作者:行者123 更新时间:2023-12-03 20:16:59 25 4
gpt4 key购买 nike

我有一个实体:

<class name="name.dargiri.model.Entity" table="ENTITY" optimistic-lock="version">
<version name="version" column="ver" type="long" />
</class

如果实体被保存了多少次,在事务结束时,Hibernate 选择对象的版本。为什么? Hibernate 在存储对象时生成此版本,因此它知道它。我发现这个方法调用了这个:

EntityVerifyVersionProcess#getCurrentVersion()

Hibernate 在日志中生成这个:

Hibernate: 
/* update
name.dargiri.model.Entity */ update
ENTITY
set
ver=?,
USERNAME=?,
lucky_number=?
where
id=?
and ver=?
Hibernate:
/* get version name.dargiri.model.Entity */ select
ver
from
ENTITY
where
id =?

我使用 MySQL 和 Session#save()。

最佳答案

Hibernate 在更新后执行额外的 SQL 语句来检索版本号,因为版本号由数据库管理。更多详情,我建议你看看这个article这很好地解释了这一点。

关于java - hibernate 。乐观锁。选择版本,即使它生成它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10275447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com