Row was updated or deleted by another transaction 异常的处理

Hibernate事务异常:

org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)

遇到该异常说明操作对象时应用了乐观锁机制或定义POJO时定义了version字段。

错误的原因:

当前version版本与数据库中version版本不一致。

  • 两个以上的session同时对此记录进行了相似操作;
  • 数据提交问题:通过编辑页面来修改一条记录时,提交上来的form值对象中version为空或者不等于数据库中对应该记录的version字段值,调用update方法时,version不一致就会出错。

错误的解决:

  • 在提交数据时,把version也一并提交上来;
  • 在数据库中把version的值查出来,赋给实体对象,再执行更新操作。
    注:每次执行更新才做之后,version的值都会改变,所以需要再次执行更新操作,必须先把version的值查出来,赋最新的version值,再执行更新操作。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,219评论 2 89
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,336评论 0 10
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 12,405评论 5 115
  • 为什么去幼儿园好好的,回了家就不愿意去了? 去年差不多这个时候,相熟的一位幼儿园老师联系我,大班的小女生,五六岁的...
    和翊浛阅读 1,171评论 0 0
  • 作者从惧怕自然学科的俄语专业学生,26岁开始学三角学,最后成为工程电气和电子工程协会副主席、工程学博士;在这个过程...
    回米阅读 5,355评论 1 1

友情链接更多精彩内容