如何在Spring批处理中的每个项目后执行更新?

时间:2016-03-22 10:28:43

标签: spring-batch

我正在做数据库读取和数据库写作弹簧任务。它运行正常。后工作方法也被执行得很好。但我的要求是每次插入一个条目后我需要更新源数据库中的一个标志。我们怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

如果插入的数据包含一些数据以识别发生的插入(插入日期,状态标志等),您可以运行一个简单的Taskletstep来执行更新语句,如

update .... 
set flag = flag.value 
where insert.date = ....

答案 1 :(得分:0)

考虑使用CompositeItemWriter - 有2个代表编写者

  1. 委托编写者1 - 执行插入目标数据库
  2. 委托编写者2 - 更新源数据库中的状态
  3. 如果你真的需要在每次插入后提交 - 你需要将步骤的commit-interval设置为1.请记住,设置提交间隔1意味着性能非常低 - 所以除非有令人信服的理由不这样做将提交间隔设置为1