Hibernate & Optimistic Lock
От: lamer2001  
Дата: 10.08.17 11:59
Оценка:
Столкнулся с проблемой:
Данные грузятся в таблицу(Vaadin). Далее их можно редактировать и сохранять. После второго сохранения валится ошибка: поле version не совпадает.

Выяснилось что после вызова save у JpaRepository возвращается новый!!! объект, у которого правильная версия.
Получается что этим новым объектом нужно в таблице заменять старый объект?

Как-то можно избавиться от этого?
java hibernate lock
Re: Hibernate & Optimistic Lock
От: GarryIV  
Дата: 28.08.17 05:53
Оценка:
Здравствуйте, lamer2001, Вы писали:

L>Выяснилось что после вызова save у JpaRepository возвращается новый!!! объект, у которого правильная версия.

L>Получается что этим новым объектом нужно в таблице заменять старый объект?
Как минимум версию старого надо обновить. Лучше конечно заменить если возможно.

L>Как-то можно избавиться от этого?

От чего этого? От нового объекта? Короткий (и правильный) ответ — нет. Если сохраняешь объект который не из текущей сессии то по id хибернейт загрузит новый из базы, скопирует туда данные и сохранит в бд. Из чего решение — держать сессию открытой вместе с твоей таблицей, но делать так не надо.
WBR, Igor Evgrafov
Re: Hibernate & Optimistic Lock
От: GiDRAvlic Латвия  
Дата: 31.08.17 06:30
Оценка:
Здравствуйте, lamer2001, Вы писали:

L>Данные грузятся в таблицу(Vaadin). Далее их можно редактировать и сохранять. После второго сохранения валится ошибка: поле version не совпадает.

L>Выяснилось что после вызова save у JpaRepository возвращается новый!!! объект, у которого правильная версия.
L>Получается что этим новым объектом нужно в таблице заменять старый объект?

Да, совершенно верно.

L>Как-то можно избавиться от этого?


Релуд таблицы, иначе никак.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.