如何在 spring 批处理中从多个相关数据库表中读取复杂数据

how to read complex data from multiple related database tables in spring batch

我打算实现批处理从各种DB table读取数据填充下面的复杂域,然后在处理器中执行计算并通过writer将数据加载到DB中。

public class A{

  private String id;
  private String name;
  private ArrayList list1;
  private ArrayList list2;

  ......
}

现在,我卡在了 reader 的设计上。思路是查询DBtable得到一个id的列表,然后根据每个id查询其他字段包括list1和list 2。现有的reader似乎不​​能满足这个要求,我需要创建自定义reader来达到目的吗?我想我会采用块方法,但不知道如何实现它。

非常感谢代码示例。

您可以使用驾驶查询模式。 reader只读取ID,然后处理器可以根据ID查询每个对象的详细信息。

这是一种常见模式,您可以在此处文档的 common batch patterns 部分找到更多详细信息:https://docs.spring.io/spring-batch/4.0.x/reference/html/common-patterns.html#drivingQueryBasedItemReaders