出现[-]错误无法将数据库状态与会话同步:org.hibernate.event.def.AbstractFlushingEventListener-(277)

时间:2019-12-16 14:13:00

标签: hibernate environment

我遇到以下错误:

[-] ERROR Could not synchronize database state with session : org.hibernate.event.def.AbstractFlushingEventListener-(277)

我们在各种环境中部署了相同的代码,并且仅在一个特定环境中面临上述错误,因此这似乎不是代码问题。 任何指针都会有所帮助。 休眠版本:3.0.4 Env:Unix Box。

请找到以下日志:

org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
        at org.hibernate.jdbc.BatchingBatcher.checkRowCount(BatchingBatcher.java:92)
        at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:78)
        at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:57)
        at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:174)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)



 at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:137)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)
        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
[-] ERROR Could not synchronize database state with session : org.hibernate.event.def.AbstractFlushingEventListener-(277)
org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
        at org.hibernate.jdbc.BatchingBatcher.checkRowCount(BatchingBatcher.java:92)
        at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:78)
        at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:57)
        at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:174)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)

1 个答案:

答案 0 :(得分:0)

我认为这是因为数据过时。 有两种可能的解决方案。

1。)检查您是否在使用@Tansaction注释的代码。如果使用它,请尝试更改传播= Propagation.REQUIRES_NEW。如果您不使用此注释,请尝试选项2。

2。)添加层叠='保存更新'