【问题标题】:Record splitting and grouping in spring batch春季批处理中的记录拆分和分组
【发布时间】:2014-08-08 08:34:46
【问题描述】:

我需要拆分包含不同长度记录的输入文件并键入一些 bean。我可以使用 CompositeItemReader 将每条记录映射到不同的 bean。但是这些记录之间存在一些父子关系。我想形成一个包含子豆的豆。任何帮助表示赞赏。

这是我的示例输入文件。

AB,01,05,HHGFG,05 CD,452,63,FDD,07,54,76,EQWED PT,GGG,76,YYY CD,08,06,ASW,97,55,66,BT AB,96,87,KKK,03 PT,TIPWQ,19,YEQ PT,ROPRG,39,PRVM

CD,08,06,ASW,97,55,66,BT

这里 AB 被认为是父记录。我的片段以 AB*、CD*、PT* 开头

【问题讨论】:

  • 所有子 bean/行都直接在父 bean 之后(在文件中)吗?例如 ParentLine1->childLine->childLine->ParentLine2->childLine->childLine
  • 这是我的示例输入文件 AB,01,05,HHGFG,05 CD,452,63,FDD,07,54,76,EQWED PT,GGG,76,YYY CD,08,06 ,ASW,97,55,66,BT AB,96,87,KKK,03 PT,TIPWQ,19,YEQ PT,ROPRG,39,PRVM CD,08,06,ASW,97,55,66,BT跨度>
  • AB,01,05,HHGFG,05 CD,452,63,FDD,07,54,76,EQWED PT,GGG,76,YYY CD,08,06,ASW,97,55 ,66,BT AB,96,87,KKK,03 PT,TIPWQ,19,YEQ PT,ROPRG,39,PRVM CD,08,06,ASW,97,55,66,BT
  • 如果不解释关系,这并不能说太多。您还应该使用新信息编辑您的帖子,而不是将其写入 cmets。这样你就可以用一些降价来格式化它。也请在我的第一条评论中回答问题。
  • 您好,您有 AggregateItemReader 的示例吗?

标签: split javabeans grouping record spring-batch


【解决方案1】:

顶级域对象的创建是ItemReader 的责任,所以这种类型的聚合应该在读取阶段完成。
SB-sample-projects 中有一个multilineOrder 示例,其中您有一个关于如何解决此类问题的框架;当然,您必须“手动”解决对象之间的父/子关系并在读取期间管理错误。
另一个例子Spring Batch :Aggregated reader / writer Issue

【讨论】:

猜你喜欢
  • 2020-02-12
  • 2017-10-06
  • 2014-12-15
  • 2018-05-27
  • 2015-05-13
  • 2017-06-25
  • 2021-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多