使用spring批处理,如何删除已处理的数据

使用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

我有一个表a,使用MyBatisPagingItemReader读取、处理、使用MyBatisBatchItemWriter将结果写入表B,然后我想删除我在表a中处理过的记录,怎么做?

我想这个自定义操作的最佳方法是添加StepListener。 像这样的

 @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中删除条目


这样,一切都在同一个事务中运行;因此,不存在数据不一致的风险。

我建议使用这种方法,因为侦听器在单独的事务中运行。(看一看这篇文章:)。我建议使用这种方法,因为侦听器是在单独的事务中运行的。(看看这篇文章:)。