列表驱动查询驱动批处理

时间:2014-09-16 13:59:44

标签: spring-batch

我可以在你的帮助下做任何弹簧批处理专家:我需要创建一个批处理进程,它从数据库返回一个id列表,其中每个id随后用于驱动返回一组记录的查询。结果集(每个id)将是安静的大,所以如何从第一个查询(id列表)迭代驱动第二个查询到块?

我遇到的所有示例都涉及一个查询,后来这个查询被分块,这不是一回事。

1 个答案:

答案 0 :(得分:0)

两个选项:

  • 自定义ItemReader - 为其中一个基于JDBC的ItemReader实现创建一个包装器。包装器将查询id并使用委托来查询块。您的包装器需要维护状态(已读取的ID)才能重新启动,但一般来说,这将是最简单的选择。
  • 分区 - 如果您不必担心正在处理的ID的顺序(每个分区= 1个ID),则按ID进行分区也可以。分区选项只需要自定义Partitioner实现。其余的将是现成的组件。