Spring 具有可选数据库写入的批处理复合项目编写器

Spring batch composite item Writers with optional database writes

我有 spring 执行以下步骤的批处理作业

  1. 从数据库读取
  2. 处理记录并从其他系统获取相关详细信息
  3. 确定要更新的目标数据
  4. 多个目标数据库的复合项目编写器(目前我有两个目标表,两个 jdbc 编写器)

现在的问题是,如果任何 jdbc 项编写器由于条件不匹配或被跳过而未更新行,则此复合项编写器将失败。

用例是

  1. 要跳过的所有项目编写器 - 这是通过从处理器返回空对象来完成的
  2. 所有 Item Writers 更新 - 没有问题
  3. 有些 Writer 需要更新,有些需要跳过 - 需要帮助来解决这个问题。

将每个块包装在一个事务中的想法是能够将整个项目块作为一个单元来处理:要么所有项目都被提交,要么其中 none 个被提交(全有或全无语义) .

Some Writers needs to update and some needs to be skipped- need help to resolve this.

如果您需要这样的细粒度控制,则需要创建一个自定义编写器。