分组/总结弹簧批记录

时间:2013-11-11 12:48:37

标签: spring spring-batch

我是Spring-batch的新手,我想用它来实现以下过程:

read: a list of items from webservice
process: groups these items
write: these groups back to webservice

实施例

Input:
transactionID, store, amount
1, FooStore, 2.50
2, BarStore, 19.99
3, FooStore, 12,49

Output:
totalsID, store, amount
1, FooStore, 14.99
2, BarStore, 19.99

这是否可能使用弹簧批次,我是否错过了一个重要的步骤,或者这与批处理的概念有什么冲突,以至于我应该寻找不同的解决方案?

我找到了一个可能的解决方案,即使用writeFooter方法, 但这似乎很愚蠢,因为我担心我会失去使用Spring-batch的许多好处,比如错误恢复和内存管理。另外,据我所知,仅当输出写入文件而不发送到网络服务时才支持页脚。

1 个答案:

答案 0 :(得分:4)

分两步编写工作:

  1. 读取每条记录,然后从输入中,在您自己的ItemWriter.write()中,更新摘要表
  2. 将摘要表转储到文本文件(或webservice)
  3. 您还可以尝试使用SUM()和COUNT()等聚合函数来编写单个SQL语句,然后使用单步作业读取自定义SQL生成的每个记录并直接写入文本文件(或网络服务)。