读书人

不得不了。ssh更新错误

发布时间: 2012-07-30 16:19:05 作者: rapoo

不得不求助了。ssh更新异常.
有一个一对多关联的表。现在要更新多的一方。更新的时候连upda sql语句都打印了..页面却抛异常了。各位大牛给看看。从来没遇到过这个问题。纠结死了。

Java code
org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: [color=#FF0000]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[/color]    org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)    org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)    org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)    org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)    org.springframework.orm.hibernate3.HibernateTemplate.update(HibernateTemplate.java:716)    org.springframework.orm.hibernate3.HibernateTemplate.update(HibernateTemplate.java:712)    com.test.dao.impl.FilmDAOimpl.update(FilmDAOimpl.java:33)    com.test.service.impl.FilmServiceImpl.update(FilmServiceImpl.java:40)    com.test.action.FilmAction.updteFilm(FilmAction.java:138)    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)    java.lang.reflect.Method.invoke(Method.java:597)    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:432)root cause org.hibernate.StaleStateException: [color=#FF0000]Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1[/color]    org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:85)    org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:70)    org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:90)    org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)    org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)    org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)    org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)    org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)    org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2372)    org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2325)    ....... 


红的方法抛的是什么异常啊。网上说的和映射文件有关的。
这是多的一方
Java code
<hibernate-mapping package="com.test.bean">        <class name="FilmInfo" table="filmInfo">            <id name="filmId" column="filmId" type="int">                <generator class="increment"></generator>            </id>            <property name="filmName" column="filmName" type="string"></property>            <property name="actor" column="actor" type="string"></property>            <property name="director" column="director" type="string"></property>            <property name="ticketPrice" column="ticketPrice" type="int"></property>            <many-to-one name="filmType" lazy="false" cascade="all" class="FilmType" column="typeId"></many-to-one>        </class>    </hibernate-mapping>

这是一的一方
Java code
   <hibernate-mapping package="com.test.bean">        <class name="FilmType" table="filmType">            <id name="typeId" column="typeId" type="int">                <generator class="increment"></generator>            </id>            <property name="typeName" column="typeName" type="string"></property>            <set name="fileInfo" cascade="all" lazy="false" inverse="true">                <key column="typeId"></key>                <one-to-many class="FilmInfo" />            </set>        </class>    </hibernate-mapping>

这是控制台sql语句。
Hibernate: update filmInfo set filmName=?, actor=?, director=?, ticketPrice=?, typeId=? where filmId=?
各位大牛看看吧。

[解决办法]
我才刚刚接触SSH框架,要努力才行啊

读书人网 >J2EE开发

热点推荐