Получение ObjectOptimisticLockingFailureException без аннотации версии или стратегии OptimisticLocking - PullRequest
0 голосов
/ 01 марта 2019

Я получаю исключение оптимистической блокировки (упомянуто ниже), но странно то, что мы не указали ни одну из наших сущностей с аннотацией @version или OptimisticLocking, так что просто интересно, что может вызвать это исключение?Мы используем JPA, спящий режим, данные весны и весна.База данных postgresql.

System exception occurred while processing request, ERROR_CODE: a18d5739 org.springframework.orm.ObjectOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:301)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:225)
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:521)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

1 Ответ

0 голосов
/ 01 марта 2019

Это не про Оптимистичный замок.Это исключение выдается при удалении / обновлении записи по Id, который вообще не существует.Поэтому убедитесь, что запись, которую вы обновляете / удаляете, действительно существует в БД.

Однако, чтобы лучше понять, в чем причина проблемы, вы можете:

1) Установить show_sql как true 2)Установите уровни журналов для Spring и Hibernate на DEBUG

. Это поможет вам понять проблему и исправить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...