【发布时间】:2019-04-08 17:23:38
【问题描述】:
我是 Spring 批处理的新手,目前正在使用 MultiResourceItemReader 读取多个文件,并使用 CompositeItemWriter 将其写入不同的数据库表中,每个文件包含不同数量的行。 我的问题:如果在数据库中插入一行失败,是否有可能对该文件插入的所有行进行回滚? 有没有办法进行回滚?
【问题讨论】:
标签: java spring spring-batch
我是 Spring 批处理的新手,目前正在使用 MultiResourceItemReader 读取多个文件,并使用 CompositeItemWriter 将其写入不同的数据库表中,每个文件包含不同数量的行。 我的问题:如果在数据库中插入一行失败,是否有可能对该文件插入的所有行进行回滚? 有没有办法进行回滚?
【问题讨论】:
标签: java spring spring-batch
Spring batch 以块的形式读写数据。假设您有 1000 条记录,并且您的块大小为 100,并且您正在执行批量插入。对于每个块(100 个项目),spring batch 将打开一个事务,插入 100 条记录并提交事务。万一发生任何错误,该特定块(100 条记录)将被回滚。但是之前已经插入的所有块都不能回滚。
【讨论】: