org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:789)
org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:663)
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
报了这个错,网上搜了一下。到处是这个问题,但好像没有一个答案
奇怪就在,只有执行删除操作后才报这个错,再一点奇怪的就是,这个框架是以前搭建的,都用了三四回了,都没有出现过这个错误!请高手热点
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:789)
org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:663)
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
报了这个错,网上搜了一下。到处是这个问题,但好像没有一个答案
奇怪就在,只有执行删除操作后才报这个错,再一点奇怪的就是,这个框架是以前搭建的,都用了三四回了,都没有出现过这个错误!请高手热点
你只是在单元测试的时候,期望值与实际值不匹配而已啊
actual row count: 0; expected: 1
实际值为0,而期望值为1
----------------------------第一宗罪------------------------------------------
A con FK B,
A删除,但是B中没删除。要是数据库没有映像只靠H---出错的概率很高。
添加数据的时候很可能打破唯一约束。 所以要配置MANY-ONE--的唯一约束,而非一对一。
----------------------------第二宗罪------------------------------------------
删除基本是实体,但是实体脱离了状态,更改后出现了主键背离了数据库,第二次COMMIT的时候
数据出了差错,ID PRI没有了,出现了BATCH update。
----------------------------第三宗罪------------------------------------------
批量操作,不慎 配置了反转,大批数据关联出现差错,甚是凄惨呀!!
----------------------------第四宗罪------------------------------------------
事务压根就没提交,还堂而皇之的认为数据已经更新了!之后还在使用,session没有关闭,缓存--》LOAD,殊不知你在操作压根就没有的数据。
----------------------------第五宗罪------------------------------------------
累了,不写了!!
<bean id="productAdminBean" class="com.flexoa.web.action.product.ProductActin" scope="prototype">
<property name="productManager" ref="productManager" />
</bean>
加上了,运行就像钢铁一样强硬,怎么都不出问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!因为在配置spring的bean是忘了写scope="prototype"所以每次添加时都显示最后一次访问过的记录
找了很长时间,原来是spring bean出了问题。 scope="prototype" 会在该类型的对象被请求时创建一个新的action对象。如果没有配置scope=prototype则添加的时候不会新建一个action,他任然会保留上次访问的过记录的信息。