【问题标题】:Spring batch stateful processorSpring批处理有状态处理器
【发布时间】:2021-10-25 17:17:14
【问题描述】:

我正在尝试使用 Spring Batch 从数据库读取并写入控制台。我已经使用 JdbcCursorItemReader 类实现了一个数据库读取器。问题是数据库中的对象分布在几个不同的行中。例如,如果我想创建 Person 对象,我将拥有如下内容:

名字姓氏周薪
卡洛斯·帕尔马 1 150
卡洛斯·帕尔马 2 120

现在我想创建一个如下所示的对象:

public class Person{
 String firstName;
 String lastName;
 List<Salary> payment;

}


Salary 对象如下所示:

public class Salary{
  String week;
  Integer salary;

}

我已经看到了 Spring Batch 的示例,但处理器通常只是将当前行转换为其他内容。有没有办法让多行的一些内存来创建最终对象?

【问题讨论】:

    标签: spring-batch stateful


    【解决方案1】:

    如果无法在数据库端使用聚合查询来做到这一点,您可以使用驱动查询模式。这种模式的想法是,项目阅读器只读取人员的详细信息(姓名、姓氏),项目处理器使用其他详细信息(在您的情况下为薪水)丰富当前项目。这在文档的Driving Query Based ItemReaders 部分进行了描述。

    请注意,此模式适用于小型数据集,但不适用于大型数据集,因为它需要对每个项目进行额外查询。

    【讨论】:

      猜你喜欢
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2019-01-30
      • 2014-12-03
      • 1970-01-01
      相关资源
      最近更新 更多