0

私は次の例外を取得しています、親切に私を助けてください....

    (AbstractFlushingEventListener.java:324) - Could not synchronize database state with session
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.xxx.exx.rxx.entity.CallSignStatusEntity#21123]
    at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1934)
    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2578)
    at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2478)
    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2805)
    at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:114)
    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:267)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:259)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:179)
    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
    at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:64)
    at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1175)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1251)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
    at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:921)
    at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:1)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
    at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912)
    at com.xxx.exx.rxx.dao.hibernate.CallxxxDaoImpl.getCallxxxStatusOfLoginOfficer(CallxxxDaoImpl.java:244)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy809.getCallSignStatusOfLoginOfficer(Unknown Source)
    at com.xxx.exx.rxx.business.impl.OfficerManagerImpl.getOfficerCallxxxBasic(OfficerManagerImpl.java:438)
    at com.xxx.exx.rxx.business.impl.OfficerManagerImpl.getUserCallxxxBasicInfo(OfficerManagerImpl.java:757)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy875.getUserCallxxxBasicInfo(Unknown Source)
    at com.xxx.exx.ims.util.OperationsPlanUtil.getUserCallxxxName(OperationsPlanUtil.java:1203)
    at com.xxx.exx.ims.business.impl.IncidentFolderManagerImpl.createIncidentEventLogForCreateIncident(IncidentFolderManagerImpl.java:635)
    at com.xxx.exx.ims.business.impl.IncidentFolderManagerImpl.createIncidentEventLog(IncidentFolderManagerImpl.java:771)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
    at $Proxy870.createIncidentEventLog(Unknown Source)
    at com.xxx.exx.rxx.business.impl.EventLogManagerImpl.insertIncidentEventLog(EventLogManagerImpl.java:210)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy876.insertIncidentEventLog(Unknown Source)
    at com.xxx.exx.rxx.business.impl.CallxxxStatusManagerImpl.logIncidentResourceStatusUpdate(CallxxxxStatusManagerImpl.java:524)
    at com.xxx.exx.rxx.business.impl.CallxxxStatusManagerImpl.handleCallxxxStatus2Available(CallxxxxStatusManagerImpl.java:286)
    at com.xxx.exx.rxx.business.impl.CallxxxxStatusManagerImpl.updateCallxxxxToStatus(CallxxxxStatusManagerImpl.java:146) 
4

1 に答える 1

1

スタックトレースで確認する必要がある最も重要なものは

org.hibernate.StaleObjectStateException:行が別のトランザクションによって更新または削除されました(または未保存の値のマッピングが正しくありませんでした)

これにより、下で何がうまくいかない可能性があるかを十分に示すことができます。トレースで述べたように、2つの可能性があります

  1. 更新しようとしている行は他のソースによって変更されており、所有しているコピーは更新されたものではありません。そのため、変更は破棄され、この例外がスローされました。これが問題である場合は、ロックメカニズムの検討を開始する必要があります。デフォルトでは、休止状態は楽観的ロックを使用します。

  2. 保存しようとしているオブジェクトに対応するマッピングが正しくありません。

私の推測では、アプリケーションには最初の問題がありますが、それでも正確な原因を確認して見つける必要があります。

お役に立てば幸いです。

于 2012-09-19T06:02:36.860 に答える