java 如何在spring batch 5.x中对记录进行分组,以便每个线程/执行都专用于一组记录

3lxsmp7m  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(109)

我正在使用Spring batch 5 &我有一个用例,我需要基于bookingId对输入记录(来自数据库)进行分组。现在处理器应该从读取器输出中一组一组地选取记录。此外,编写器应该逐组写入输出。
我们如何使用RepositoryItemReader来实现这一点?我正在努力寻找Spring Batch 5的示例代码。很遗憾,在这个标准用例中没有足够的样本。我会很感激你的帮助,如果你有类似的用例工作。

mccptt67

mccptt671#

面向块的处理模型适合这个用例。无论你在查询中如何分组(例如sql group by),当从读取器返回时,来自同一组的项都可以跨越多个块。因此,不可能每个组具有一个块。
当然,从技术上讲,滥用模式并找到实现该需求的方法是可能的,但是每个解决方案都不会是干净的,因为它会使用一个不是为用例设计的模型。
我认为解决这个问题的“最干净”的方法是使用分区步骤,其中分区是根据分组标准(在您的例子中是bookingId)创建的。

相关问题