Hibernate-批更新从更新返回意外行数:0实际行数:0预期值:1

我收到以下hibernate错误。我能够确定导致问题的功能。不幸的是,函数中有多个数据库调用。由于hibernate在事务结束时刷新会话,因此我找不到导致问题的行。下面提到的hibernate错误看起来像是一般错误。甚至都没有提到哪个Bean导致了问题。有人熟悉这个hibernate错误吗?

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:93)

at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:79)

at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)

at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)

at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)

at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)

at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)

at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)

at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)

at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)

at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)

at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584)

at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransacti

onManager.java:500)

at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManag

er.java:473)

at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(Transaction

AspectSupport.java:267)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)

回答:

没有交易的代码和映射,几乎不可能调查问题。

但是,要更好地了解导致问题的原因,请尝试以下操作:

  • 在您的hibernate配置中,将hibernate.show_sql设置为true。这应该向您显示已执行并导致问题的SQL。
  • 将Spring和Hibernate的日志级别设置为DEBUG,这将再次使您更好地了解导致问题的行。
  • 创建一个无需在Spring中配置事务管理器即可复制问题的单元测试。这应该使您对有问题的代码行有了更好的了解。

希望能有所帮助。

以上是 Hibernate-批更新从更新返回意外行数:0实际行数:0预期值:1 的全部内容, 来源链接: utcz.com/qa/432716.html

回到顶部