with identifier [6854395]: optimistic locking failed; nested exception is org.hibernate.StaleObjectS

本文探讨了在使用Spring ORM时遇到的乐观锁失败问题,原因在于试图更新的PolicyIntervalsInfo对象的version字段数据库中为null。解决方法涉及版本控制和数据库操作的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

with identifier [6854395]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException:

我这里的原因是 version 版本号在数据库为null

{"timestamp":"2022-07-11T03:04:35.288Z","logger_name":"com.jzt.wotu.error.ErrorController","level":"ERROR","class":"com.jzt.wotu.error.ErrorController","method":"PROCESS_ERROR","file":"ErrorController.java","line":121,"thread_name":"http-nio-8091-exec-1","message":"
{\"errorTrace\":\"org.springframework.orm.ObjectOptimisticLockingFailureException: Object of class 
[com.jzt.fl.upstream.basic.contracts.entity.PolicyIntervalsInfo] with identifier [6854395]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [com.jzt.fl.upstream.basic.contracts.entity.PolicyIntervalsInfo#6854395]\\r\\n\\tat 
org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:337)\\r\\n\\tat 
org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:255)\\r\\n\\tat 
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:531)\\r\\n\\tat org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)\\r\\n\\tat 
org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)\\r\\n\\tat 
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:154)\\r\\n\\tat 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\\r\\n\\tat org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:178)\\r\\n\\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\\r\\n\\tat org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)\\r\\n\\tat 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\\r\\n\\tat 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)\\r\\n\\tat com.sun.proxy.$Proxy232.save(Unknown Source)\\r\\n\\tat 
fl.common.entity.BaseBillServiceImpl.updateBill(BaseBillServiceImpl.java:92)\\r\\n\\tat 
fl.common.entity.BaseBillServiceImpl.updateBill(BaseBillServiceImpl.java:13)\\r\\n\\tat fl.common.entity.BaseBillServiceImpl$$FastClassBySpringCGLIB$$5021d0ed.invoke(<generated>)\\r\\n\\tat 
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\\r\\n\\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\\r\\n\\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\\r\\n\\tat 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\\r\\n\\tat 
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367)\\r\\n\\tat org.springframework.transaction.interceptor.Tra
nsactionInterceptor.invoke(TransactionInterceptor.java:118)\\r\\n\\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\\r\\n\\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\\r\\n\\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\\r\\n\\tat com.jzt.fl.upstream.basic.biz.service.PactSubInfoServiceImpl$$EnhancerBySpringCGLIB$$8b30fc41.updateBill(<generated>)\\r\\n\\tat com.jzt.fl.upstream.basic.biz.service.PactPolicyInfoServiceImpl.SaveOrUpdatePolicy(PactPolicyInfoServiceImpl.java:252)\\
r\\n\\tat com.jzt.fl.upstream.basic.biz.service.PactPolicyInfoServiceImpl$$FastClassBySpringCGLIB$$fb74b93d.invoke(<generated>)\\r\\n\\tat org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\\r\\n\\tat 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值