Spring批处理中的commit-interval和处理回滚

bal*_*teo 12 java transactions commit chunks spring-batch

我的问题涉及Spring批处理和事务.

假设我为我的一个步骤选择了50提交间隔.

还假设我总共有1000条记录,其中一条记录会导致itemWriter失败,从而导致整个块的回滚(在我的例子中为50条记录).

什么是stategies以确保在作业完成后将49个有效记录写入数据库(并忽略有问题的块)?

bal*_*teo 17

经过一番研究,我想出了以下内容:

如果项目编写者未能提交块(此处为50个项目)从而导致回滚,则Spring Batch将单独重新运行有问题块的每个项目,每个项目一次提交/事务.

因此,除了导致Spring Batch回滚块的一个项目之外,所有49个项目都将出现在数据库中.