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:85)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:70)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:47)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2574)
at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2478)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2805)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:114)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:260)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:180)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy6.updateAndSaveUser(Unknown Source)
at com.sm.web.UserInfoContoller.updateAndSaveUser(UserInfoContoller.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:278)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
解决方案:
在更新对象的时候对象的主键为空或者没有值
分享到:
相关推荐
Hibernate 操作持久化对象是Java开发中用于简化数据库交互的重要工具。它是一个开源的Java持久化框架,由Gavin King创建,并逐渐发展成为Java世界中主流的持久化解决方案。Hibernate的核心在于提供对象-关系映射(ORM...
本文将针对“MyEclipse配置Hibernate时出错”的问题进行全面解析,旨在帮助开发者更好地理解并解决此类问题。 ### 一、MyEclipse简介 MyEclipse是一款面向JavaEE集成开发环境的软件,集成了目前几乎所有的Java工具...
Hibernate是一个对象关系映射(ORM)框架,处理数据库交互;而Spring则是一个全面的后端应用框架,提供依赖注入、事务管理、AOP(面向切面编程)等功能。当这三个框架整合在一起时,可以构建出强大的企业级应用。 ...
Hibernate是一个非常流行的ORM(对象关系映射)框架,它简化了Java应用程序与数据库之间的交互。Hibernate Tools是Hibernate的扩展,提供了诸如逆向工程(reverse engineering)、生成实体类和DAO、HQL查询编辑器等...
感觉配置起来也挺麻烦的,不过对于有一大坨的mapping对象的cfg文件来说倒是很省事的,关键是避免出错了。 2. Hibernate Extention,用来自动生成与那些*.hbm.xml对应的POJO,也就是根据那些对象关系映射的配置文件...
`Hibernate 基础1.ppt`可能涵盖Hibernate的基本用法,如实体类的定义、属性注解、一对一、一对多、多对多的关联映射,以及如何通过Hibernate API进行CRUD操作(创建、读取、更新、删除)。此外,还可能介绍到HQL...
通过学习,你可以更加熟练地使用Hibernate来创建、管理和查询持久化对象,提高开发效率,减少出错概率。记得,理论与实践相结合是学习的关键,所以不仅要理解概念,还要动手尝试,才能真正掌握这些知识。
4. Session和Transaction:深入理解Hibernate的Session接口,包括保存、更新、删除、加载和检索对象,以及事务处理的原理和API使用。 5. HQL和 Criteria查询:介绍Hibernate特有的面向对象的查询语言HQL,以及...
例如,如果已经有了 Java 类和映射文档,Hibernate 可以为开发者创建(或更新)所需的数据库表。或者,仅从映射文档开始,Hibernate 也可以生成数据类。此外,还有一些针对 Eclipse 的 alpha 插件,可以在 IDE 中...
Hibernate是一款强大的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库,极大地简化了数据访问层的编码工作。在这个“Hibernate开发lib包”中,包含的两个主要部分是“Hibernate 3.3 ...
2. **支持常见的面向对象编程概念**:Hibernate支持面向对象编程中常见的概念,如关联(association)、继承(inheritance)、多态(polymorphism)、组合(composition)等。 3. **高性能的对象缓存机制**:...
标题 "Myeclipse 10.0 + Hibernate 4.3.5 连接 Oracle 11G的演示代码" 描述的是一个整合项目,它将Myeclipse 10.0集成开发环境、Hibernate 4.3.5对象关系映射框架与Oracle 11G数据库相结合,用于演示如何在这样的...
这种方式在处理大量字段时不仅耗时,而且容易出错,特别是当对象有多个字段,而实际只修改了其中几个字段时。 `hibernate`的`dynamic-update`属性提供了对此场景的一种解决方案。如果在`<class>`映射中设置了`...
《Hibernate的两本英文书籍》可能指的是更深入的原版文档或者专业著作,这些书籍通常会包含最新的技术信息和最佳实践,对于想要深入研究Hibernate或者保持技术更新的开发者来说是不可或缺的资源。可能涵盖的主题包括...
通过使用Hibernate,开发者可以避免编写大量的JDBC代码,提高开发效率并减少出错的可能性。 二、安装与配置 在开始使用Hibernate 4.1之前,需要将其依赖库添加到项目的类路径中。通常,这可以通过Maven或Gradle等...
本教程详尽地涵盖了Hibernate5框架的各个方面,旨在帮助开发者深入理解和熟练使用这一强大的ORM(对象关系映射)工具。ORM技术的核心思想是将Java对象模型与关系数据库模型进行映射,使得在Java代码中可以直接操作...
ORM框架允许开发者以面向对象的方式处理数据,而无需直接编写大量的JDBC代码,从而提高了开发效率并降低了出错的可能性。 1. 持久化概念: - 狭义持久化:数据存储在物理介质(如硬盘)上,即使系统关闭,数据也...
【hibernate独立开发包】是一个专为Java开发者设计的持久化框架,它极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑,而非...熟练掌握Hibernate,能大大提高开发效率,减少出错概率,为项目带来诸多便利。
总之,《精通Hibernate:Java对象持久化技术详解》旨在帮助Java开发者全面掌握Hibernate框架,通过深入学习,可以提升开发效率,减少出错概率,更好地应对企业级应用的开发需求。配合提供的源代码,读者可以动手实践...