Hibernate——org.hibernate.StaleStateException: Batch update returned unexpected row count from update
2015-12-26 12:11
537 查看
update 2.0:
我的id的类型用的是int,结果无论怎样都报错。后来将类型换为Integer,然后在更新数据之前,使用了setId方法设置了以下记录的ID,再更新就OK了。
总结:
主键最好使用Integer这样的包装类型,而不是int这样的基本类型!,这样可能会避免很多问题。
以下为1.0原文:
在使用hibernate更新数据库记录的信息时,出现org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 错误。
原因分析:
我在更新数据时,显式地使用了id的setId()方法为其指定值。但是我的实体类的id指定了主键生成策略(
解决方法:
不要显式地使用setId方法设置主键值。
我的id的类型用的是int,结果无论怎样都报错。后来将类型换为Integer,然后在更新数据之前,使用了setId方法设置了以下记录的ID,再更新就OK了。
总结:
主键最好使用Integer这样的包装类型,而不是int这样的基本类型!,这样可能会避免很多问题。
以下为1.0原文:
在使用hibernate更新数据库记录的信息时,出现org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 错误。
原因分析:
我在更新数据时,显式地使用了id的setId()方法为其指定值。但是我的实体类的id指定了主键生成策略(
@GeneratedValue(strategy = GenerationType.AUTO)),此时不能显式使用setId()方法设置id的值。
解决方法:
不要显式地使用setId方法设置主键值。
相关文章推荐
- Hibernate Oracle sequence的使用技巧
- jsp Hibernate批量更新和批量删除处理代码
- jsp hibernate的分页代码第1/3页
- JAVA+Hibernate 无限级分类
- SSH整合中 hibernate托管给Spring得到SessionFactory
- jsp hibernate 数据保存操作的原理
- hibernate中的增删改查实现代码
- 解决hibernate+mysql写入数据库乱码
- java优化hibernate性能的几点建议
- java Hibernate延迟加载
- hibernate 常用方法介绍
- 详解Java的Hibernate框架中的注解与缓存
- JQuery+Ajax+Struts2+Hibernate框架整合实现完整的登录注册
- 深入理解Hibernate中的flush机制
- 简单的手工hibernate程序示例
- 详解Java的Hibernate框架中的List映射表与Bag映射
- 举例讲解Java的Hibernate框架中的多对一和一对多映射
- 详解Java的Hibernate框架中的缓存与原生SQL语句的使用
- 解析使用jdbc,hibernate处理clob/blob字段的详解
- 浅析java程序中hibernate的应用总结