powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / OptimisticLock в hibernate не догоняю
3 сообщений из 3, страница 1 из 1
OptimisticLock в hibernate не догоняю
    #38299081
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно не понимаю что происходит и как с этим жить, и так загрузил в web слой объект из базы, отредактировал и пытаюсь сохранить в результате падает ошибка.

У объекта есть аннотация @Version чтоб разрулить конкурентное обновление, ну я по крайней мере так думал. Собственно не понимаю одного как вообще этот механизм заюзать при том что у меня объект после передачи в web слой становиться отключенный от сессии это возможно или нет? Объясните люди добрые :)

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Caused by: org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [model.MeasureEvent] with identifier [29]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [model.MeasureEvent#29]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:683)
	at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:104)
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:403)
	at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:58)
	at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
	at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:163)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.data.jpa.repository.support.LockModeRepositoryPostProcessor$LockModePopulatingMethodIntercceptor.invoke(LockModeRepositoryPostProcessor.java:84)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at com.sun.proxy.$Proxy30.save(Unknown Source)
...
Рейтинг: 0 / 0
OptimisticLock в hibernate не догоняю
    #38299115
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем собственно вопрос?
Ну да оптимистик локинг по определению позволяет отследить был изменен объект или нет для этого во всех запросах update и delete добавляется условие where version= current.version или where lastUpdateTime = current.lastUpdateTime. Если запрос не проходит - то кидается эксепшн, который м ыи видим в логах, думаю про try/catch вы в курсе, итак возвращаемся к началу - в чем собственно вопрос?
...
Рейтинг: 0 / 0
OptimisticLock в hibernate не догоняю
    #38299122
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

Да собственно уже не в чём :) Вроде победил всё :) Спасибо за ваш ответ.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / OptimisticLock в hibernate не догоняю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]