关于Hibernate级联更新插入信息时提示主键不为空的问题“org.hibernate.StaleStateException: Batch update returned unexpected r

Posted 夏蝉lpf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Hibernate级联更新插入信息时提示主键不为空的问题“org.hibernate.StaleStateException: Batch update returned unexpected r相关的知识,希望对你有一定的参考价值。

org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1 

出现这一错误的主要原因有两个 
      使用的是hibernate的saveOrUpdate方法保存实例。saveOrUpdate方法要求ID为null时才执行SAVE,在其它情况下执行UPDATE。在保存实例的时候是新增,但你的ID不为null,所以使用的是UPDATE,但是数据库里没有主键相关的值,所以出现异常。

解决方法:

  把可能不为空的附表ID设置为空就OK

例如:

   

这里把插入表中的ID改为null,即可插入成功。

以上是关于关于Hibernate级联更新插入信息时提示主键不为空的问题“org.hibernate.StaleStateException: Batch update returned unexpected r的主要内容,如果未能解决你的问题,请参考以下文章

hibernate级联更新外键问题

MySQL使用on duplicate key update时导致主键不连续自增

hibernate 3如何级联更新

关于Hibernate级联更新的一个问题

hibernate初步2

如果我的主键不自动递增,如何使用 PHP 获取最后插入的 ID