org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect):
这一人异常调试了一天多才整出来,其原因:
主键对应数据库表中的ID字段,其值由oracle sequence生成, 而timestamp属性,对应的是数据库的TIMESTAMP字段,并且这个属性在mapping中定义为<version>属性, 这样,就会出现两点要注意的地方
a.数据库中的这个timestamp的字段一定要有值,并且是日期值,否则当hibernate更新这个字段没有值的那条记录时,
会出现如下错误
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.mytophome.admin.domain.MthCity#1]
b. 在更新MthCity中的值到数据库中,也就是更新一条记录时,一定不能调用方法人工设置timestamp属性的值,也就是下面的语句不能出现
mthCity.setTimeStamp(new Date());
否则也会引起hibernate的出错.
分享到:
相关推荐
错误十:Exception in thread "main" org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) 错误原因:这个异常通常发生在并发...
4. 异常处理:熟悉Hibernate常见的异常,如ConstraintViolationException、StaleObjectStateException等,以便于调试和问题定位。 5. 日志配置:通过日志框架(如Log4j、SLF4J)设置合适的日志级别,便于跟踪和分析...
【Hibernate_Demo】是一个关于Java持久化框架Hibernate的示例项目,主要涵盖了对象关系映射(ORM)技术在实际操作中的应用,包括数据库的增、删、改、查(CRUD)基本操作。这个项目是为MyEclipse 6.5开发环境设计的...
Hibernate的异常体系主要基于`org.hibernate`包下的异常类,如`HibernateException`、`StaleObjectStateException`等。在编程过程中,应适当地捕获并处理这些异常,确保程序的健壮性。 总结,Hibernate与MySQL的...
在Java企业级开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它简化了数据库操作,将数据库中的记录映射为Java对象。本文将详细介绍Hibernate持久层中的一些核心方法,包括`session.load`, `session....
《Hibernate电子版及源码》资源集合是一份珍贵的学习材料,专为那些渴望深入了解Java持久化框架Hibernate的开发者准备。Hibernate作为一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作...
8. 异常体系:Hibernate有自己的异常体系,如HibernateException、StaleObjectStateException等,这些异常可以帮助开发者定位和处理数据库操作中的问题。 通过对Hibernate源码的深入学习,我们可以了解其内部机制,...
在Hibernate的源码中,`org.hibernate.persister.entity.AbstractEntityPersister`类负责处理版本管理。当执行更新操作时,`AbstractEntityPersister`会比较数据库的版本信息与对象中的版本信息,并在必要时抛出异常...
- Hibernate 抛出的一系列特定异常,如 `HibernateException`, `StaleObjectStateException` 等,需要在代码中适当地捕获和处理。 **9. 联合主键与复合主键** - Hibernate 支持联合主键和复合主键,可以由多个字段...
《Hibernate参考指南》是Java开发人员深入理解和使用Hibernate框架的重要资料。Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互,使得开发者无需编写大量的SQL代码,就能...
2. Hibernate框架:如 HibernateException(通用持久化异常)、StaleObjectStateException(并发修改异常)等。 3. MyBatis框架:SqlMapClientException(SQL映射客户端异常)、ResultMapException(结果映射异常)...
Hibernate的异常体系基于JDBC,如`HibernateException`、`StaleObjectStateException`等,需要合理捕获并处理。 14. 动态模型 Hibernate的`DynamicModel`允许在运行时动态创建实体,适用于不确定数据结构的场景。...
### Hibernate.lock() 方法中各种锁的区别 #### 一、悲观锁与乐观锁概念解析 **悲观锁**(Pessimistic Lock)与**乐观锁**(Optimistic Lock)是数据库和对象关系映射(ORM)框架中两种重要的锁定机制,主要用于...
在Hibernate中,乐观锁的处理主要在`org.hibernate.event.internal.DefaultMergeEventListener`和`org.hibernate.event.internal.DefaultUpdateEventListener`这两个事件监听器中完成。当调用`Session.merge()`或`...
5. **异常处理**: 捕获并处理Hibernate的特定异常,如`StaleObjectStateException`表示并发控制问题,`NonUniqueObjectException`表示违反唯一性约束等。 **总结** 《Hibernate中文开发手册详解》提供了全面的...
Hibernate抛出的异常通常继承自`HibernateException`,如`StaleObjectStateException`表示并发控制问题,`ObjectNotFoundException`表示对象未找到等。 ### 9. 结论 Hibernate通过对象关系映射简化了Java应用的...
7. **异常处理**:Nhibernate可能会抛出各种异常,如`StaleObjectStateException`(脏数据状态)、`ObjectDeletedException`(已删除对象)等,需要适当地捕获并处理。 8. **版本控制**:确保所有开发人员使用的...
当尝试更新该实体时,Hibernate会自动检查数据库中的版本号是否与实体中的版本号匹配,如果不匹配,则会抛出`StaleObjectStateException`异常。 ##### 3.4 优点 - **减少锁竞争**:由于不需要锁定数据,所以大大...
- Hibernate抛出的异常如`ConstraintViolationException`, `StaleObjectStateException`等,需要适当地捕获和处理。 ### 结论 Hibernate 3.2作为Java ORM框架的杰出代表,通过其丰富的功能和易用性,大大简化了...
当Hibernate在更新数据时,会对比当前版本号与数据库中的版本号,如果一致则更新,否则抛出`StaleObjectStateException`异常。乐观锁的实现不需要数据库级别的锁定,降低了数据库资源的消耗,但可能导致更多的事务...