#mongodb #spring-boot #spring-mongodb
#Ява #mongodb #пружинный ботинок #весна-mongodb #кислота
Вопрос:
Мои транзакции выглядят так —
- findById(идентификатор) — версия 1
- выполните некоторые операции с объектом — версия 1
- сохраните(данные) и верните последний объект — версия 2
- снова выполните некоторые действия с объектом — версия 2
- снова сохраните объект(данные) в базе данных (версия должна быть 3 после обновления)
В некоторых случаях я получаю оптимистичное исключение блокировки в точке 5, даже если версия базы данных и версия объекта обновления верны.
монго, ява
org.springframework.dao.OptimisticLockingFailureException: в org.springframework.data.mongodb.core.Монгольская табличка.doSaveVersioned (MongoTemplate.java:1458) в org.springframework.data.mongodb.core.MongoTemplate.сохранить (MongoTemplate.java:1420) в org.springframework.data.mongodb.репозиторий.поддержка.SimpleMongoRepository.сохранить (SimpleMongoRepository.java:87) в sun.reflect.Generatedmethod accessor237.вызываем на солнце.отражаем.Делегирование methodaccessorimpl.invoke (делегирование methodaccessorimpl.java:43) в java.lang.reflect.Метод.вызов (Метод.java:498) в org.springframework.data.репозиторий.ядро.поддержка.Композиция репозитория$Фрагменты репозитория.вызов (композиция репозитория.java:371) в org.springframework.data.репозиторий.ядро.поддержка.Композиция репозитория.вызов (композиция репозитория.java:204) в org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.вызов (RepositoryFactorySupport.java:657) в org.springframework.aop.фреймворк.Рефлексивный метод вызова.продолжайте (ReflectiveMethodInvocation.java:186) в org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke (RepositoryFactorySupport.java:621) в org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.вызов (RepositoryFactorySupport.java:605) в org.springframework.aop.фреймворк.Рефлексивный метод вызова.продолжайте (ReflectiveMethodInvocation.java:186) в org.springframework.данные.проекция.Defaultmethod invokingmethod interceptor.invoke (defaultmethod invokingmethod interceptor.java:80) в org.springframework.aop.фреймворк.Рефлексивный метод вызова.продолжайте (ReflectiveMethodInvocation.java:186) в org.springframework.aop.перехватчик.ExposeInvocationInterceptor.вызов (ExposeInvocationInterceptor.java:95) в org.springframework.aop.framework.Рефлексивный метод вызова.продолжайте (ReflectiveMethodInvocation.java:186) в org.springframework.aop.фреймворк.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:212) на com.sun.proxy.$Proxy239.сохранить