У меня есть сущность:Hibernate. Оптимистичный замок. Выбор версии, даже если он генерирует это
<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().
Я немного подумал и вспомнил, что после первого сохранения я не скрываю. Попытайтесь выполнить промывку после каждого обновления, возможно, это приведет к выбору после каждого сохранения(). –