我有一个实体:
<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()。