【问题标题】:how to read complex data from multiple related database tables in spring batch如何在spring批处理中从多个相关数据库表中读取复杂数据
【发布时间】:2019-01-16 08:29:27
【问题描述】:

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

public class A{

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

  ......
}

现在,我被阅读器的设计困住了。这个想法是查询DB表以获取id列表,然后根据每个id查询包括list1和list 2在内的其他字段。现有阅读器似乎无法满足此要求,我是否需要创建自定义阅读器才能实现目标?我想我会采用块方法,但不知道如何实现它。

非常感谢代码示例。

【问题讨论】:

    标签: spring-batch reader


    【解决方案1】:

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

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

    【讨论】:

    • 驱动查询模式并不总是适用于需要查找大量数据集、性能等问题的场景。在这种情况下,我们该如何进行?
    • 是的,我通常在答案中提到这一点,例如:stackoverflow.com/a/63987697/5019386。针对大型数据集解决此问题的一种方法是对输入进行分区并并行使用多个工作器。
    猜你喜欢
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多