使用spring批处理,如何删除已处理的数据
我有一个表a,使用MyBatisPagingItemReader读取、处理、使用MyBatisBatchItemWriter将结果写入表B,然后我想删除我在表a中处理过的记录,怎么做?我想这个自定义操作的最佳方法是添加StepListener。 像这样的使用spring批处理,如何删除已处理的数据,spring,spring-batch,Spring,Spring Batch,我有一个表a,使用MyBatisPagingItemReader读取、处理、使用MyBatisBatchItemWriter将结果写入表B,然后我想删除我在表a中处理过的记录,怎么做?我想这个自定义操作的最佳方法是添加StepListener。 像这样的 @Bean public Step stepA(ItemReader<String> readerA, ItemWriter<String> writerA) { return stepB
@Bean
public Step stepA(ItemReader<String> readerA, ItemWriter<String> writerA) {
return stepBuilderFactory.get("stepA").<String, String> chunk(1)
.reader(readerA).writer(writerA).listener(stepListener()).build();
}
}
在本步骤的范围内,您可以根据需要删除记录。
SqlQuery、Repository等。我想这个自定义操作的最佳方式是addstepListener。 像这样的
@Bean
public Step stepA(ItemReader<String> readerA, ItemWriter<String> writerA) {
return stepBuilderFactory.get("stepA").<String, String> chunk(1)
.reader(readerA).writer(writerA).listener(stepListener()).build();
}
}
在本步骤的范围内,您可以根据需要删除记录。
SqlQuery、存储库等。我建议使用CompositeItemWriter。将MyBatisBatchItemWriter添加为第一个writer,并添加第二个writer,这将从表a中删除条目
这样,一切都在同一个事务中运行;因此,不存在数据不一致的风险。我建议使用CompositeItemWriter。将MyBatisBatchItemWriter添加为第一个writer,并添加第二个writer,这将从表a中删除条目
这样,一切都在同一个事务中运行;因此,不存在数据不一致的风险。我建议使用这种方法,因为侦听器在单独的事务中运行。(看一看这篇文章:)。我建议使用这种方法,因为侦听器是在单独的事务中运行的。(看看这篇文章:)。