保存的JAVA报错,帮忙看看,应该是主表里的主键跟明细表里的外键有问题了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保存的JAVA报错,帮忙看看,应该是主表里的主键跟明细表里的外键有问题了相关的知识,希望对你有一定的参考价值。
ERROR [SpringAction:handleRequestInternal(83)] Error:null
Caused by: 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
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:654)
at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:717)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:586)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:629)
at com.ait.lotte.stock.service.OmExStockService$$EnhancerByCGLIB$$567c79db.saveOmExStock(<generated>)
at com.ait.lotte.stock.action.OmExStockAction.saveOrUpdate(OmExStockAction.java:391)
... 38 more
Caused by: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46)
at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:68)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:578)
... 46 more
主键是自增长的,保存的时候,主键的VALUE=0,我觉得这没什么问题啊,怎么报了这样的错?还请详细讲下
追答主键是唯一的,怎么能总是等于零呢
追问不是,我的意思是,DEBUG的时候,里面是0,而且数据库表里面是没有值的,是保存
追答主键生成策略是什么,加这个群101668177
参考技术C 主键必须唯一。 参考技术D 46Oracle9i用客户端PLSQL导入dmp文件的时候,有一些表的主键导入失败。帮帮忙。
那些导不进去数据如:"CREATE UNIQUE INDEX "SYS_C004056_1_2" ON "SUBSIDEWORKKNOWNCARD" ("
IMP-00003: 遇到 ORACLE 错误 921
ORA-00921: 未预期的 SQL 命令结尾
应该是主键的名称不规范导致的错误,之前建表的时候是用Enterprise Manager Console创建的,之后重装过系统。
1. 单独建个临时用户
2. 将有类似错误的表先都导入这个用户下(可以加参数 ignore=n)
3. 找报错的行再单独分析处理追问
当初建表的时候,如果表是违反唯一索引的约束条件的话,是建立不起来的。那么怎么会在导到新数据库后就会重复呢。
追答现在是在导入数据,但是不排除有的数据已经存在,或者已经导入过
这种情况再导入的时候,重复的数据就会因为违反唯一约束而失败
在这之前数据库是一条数据都没有的。
参考技术A 能把创建主键的这段代码全部发出来吗追问这些信息是导表时的日志其中一个表的信息,就这么多。
以上是关于保存的JAVA报错,帮忙看看,应该是主表里的主键跟明细表里的外键有问题了的主要内容,如果未能解决你的问题,请参考以下文章