关于Hibernate的 Batch update returned unexpected row count from update异常
ERROR [http-8080-Processor22] (BatchingBatcher.java:60) - Exception executing batch:
org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
出现这一错误的主要原因有两个
(1)使用的是hibernate的saveOrUpdate方法保存实例。saveOrUpdate方法要求ID为null时才执行SAVE,在其它情况下执行UPDATE。在保存实例的时候是新增,但你的ID不为null,所以使用的是UPDATE,但是数据库里没有主键相关的值,所以出现异常。
=================================================================
异常:
在插入时:
org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
解决方法:
unsaved-value="null"是否设置
可仔细看
http://www.iteye.com/topic/1604
(2)在Hibernate映射一对多,多对一,多对多的时候新增常常会出现这个异常,代码如下:
public void saveFunctionCell(FunctionCell functionCell, Integer pid) {
System.out.println("现在进行新增操作");
FunctionCell fc = new FunctionCell();
try {
BeanUtils.copyProperties(fc, functionCell);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
fc.setFuncCellID(null);
// 获得父权限
FunctionCell pfc = functionCellDao.findFunctionCellByID(pid);
fc.setParentFunctionCell(pfc);
functionCellDao.saveFunctionCell(fc);
}
关键是beanutils的用法!!!!
注意特别标识出来的这个地方,BeanUtils拷贝Bean属性的时候,它会将你的Integer类型全部设置成0,在这里设置一个空,这样就不会抛出错误了。
这个解决办法来自
http://hain.iteye.com/blog/105744
update by id
if(id==0)
org.hibernate.StaleStateException: Batch update returned
unexpected row count from update: 0 actual row count: 0 expected: 1
else
success
分享到:
相关推荐
`JdbcTemplate`的`batchUpdate`方法就是用来实现这样的功能,它可以批量执行更新语句,如INSERT、UPDATE或DELETE。 `batchUpdate`方法的基本使用如下: ```java int[] result = jdbcTemplate.batchUpdate( ...
sqlhelper工具,batchupdate方法
### Hibernate常见错误及解决办法 #### 一、Nodefaultconstructorforentity 错误 **问题描述**:在使用Hibernate执行查询语句时,系统抛出`Nodefaultconstructorforentity`错误。 **可能原因**:该错误通常是由于...
标题"Acount_batch.rar_acout_batch"暗示我们正在处理一个与账户管理和批量处理相关的软件工具,其核心是一个批处理脚本(Acount_batch.bat)。批处理是Microsoft Windows操作系统中的一种脚本编写方式,允许用户...
在MyBatis中,批量更新(batch update)是一种提高数据库操作效率的重要手段,尤其是在处理大量数据更新时。这里我们将详细探讨如何在Oracle和MySQL数据库中使用MyBatis进行批量更新。 1. **Oracle数据库的批量更新...
安装 pip3 install mysql_batchUPDATE示例您可以使用可用的模式运行此示例以下示例与以下更新相同: UPDATE batch_test SET date = NOW() WHERE number > 0 . 2 AND date is NULL ; 这等效于以20行为批处理此更新: ...
在实际的批处理过程中,经常需要对错误的数据项进行跳过处理,Spring Batch提供了灵活的跳过策略,用户可以根据需要跳过特定的错误。同时,它还提供了重试机制,对某些特定类型的错误进行重试,以增加成功的机会。 ...
Spring Batch 是一个强大的、全面的批处理框架,用于处理大量数据的处理任务。它由 Spring 框架提供支持,因此具有高度的可配置性和可扩展性,适用于各种企业级应用。Spring Batch 4.0.0 版本是该框架的一个重要版本...
通过使用Spring Batch提供的事务管理功能,开发者可以确保作业的每个步骤都能够正确回滚或提交,以及在发生错误时进行重试。 知识点七:实现健壮的作业 为了确保批处理作业的稳定性和可靠性,Spring Batch提供了...
SQL Server批量插入批量更新工具类,SqlBulkCopy,BatchUpdate
The Definitive Guide to Spring Batch takes you from the “Hello, World!” of batch processing to complex scenarios demonstrating cloud native techniques for developing batch applications to be run on...
**Spring Batch 深度解析** Spring Batch 是一个强大的、全面的批处理框架,由 Spring 社区开发,旨在简化企业级应用中的批量数据处理任务。这个框架提供了一种标准的方式来处理大量的数据输入和输出,使得开发者...
一个把指定目录下所有windows更新文件自动安装的小工具,省着自己一个个去点更新文件了,这个软件比批处理文件好的一点就是批处理文件还要手动去添加路径和文件,这个不用制定一个目录后自动查找系统还没有安装过的...
1.本项目运行在tomcat容器中,主要功能为从spring_batch_left库的user_from表抓取数据,之后批量插入到spring_batch_right库的user_to表 2.应用quartz对job进行定时触发(目前设置的定时为每隔一分钟执行一次,目前...
word-count-spring-batch-partitioning 使用 Spring Batch 在 PDF 文件中实现计数词遵循 Master/Slave 模型主/从模型字数统计算法设置、构建和运行初始化数据库创建用于存储 word-count 和 word-count-repository 的...
4. **跳过与恢复**:Spring Batch 支持错误处理,遇到错误时可选择跳过当前记录,同时记录失败信息以备后续处理。 5. **分割与并行处理**:通过StepExecutionSplitter和Partitioner,Spring Batch 可以将大型任务...
Quartz和Spring Batch是两种非常重要的Java开源框架,它们在企业级应用开发中扮演着重要角色。Quartz主要用于任务调度,而Spring Batch则专注于批量处理。在这个“quartz_springbatch_dynamic”项目中,我们将看到...
SAP-17LSMW 使用 Standard Batch 导入 BOM SAP-17LSMW 是 SAP 系统中的一种数据导入工具,使用 Standard Batch 可以将批量数据导入到 SAP 系统中。以下是在 SAP-17LSMW 中使用 Standard Batch 导入 BOM(物料清单)...
当处理过程中出现错误时,Spring Batch 提供了错误处理机制,可以配置重试策略、跳过策略或者记录失败项,确保作业的健壮性。 ### 9. 监控与日志 Spring Batch 支持通过 JMX 或 REST API 进行监控,查看作业状态、...
在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...