当前位置: 首页 > 知识库问答 >
问题:

如何在spring批处理中将自定义项而不是原始项返回给itemwriter

白文彬
2023-03-14

嗨,我使用的是itemreader、processor和itemwriter,我希望我的writer只写特定的字段,而不是写整个项目。

前男友。

假设我的模型类包含以下5个字段,其中包含getter

记录班

private String ordNo;
private String ordDate;
private String prtDctStsCd;
private String ordRefNo;
private String ordStsCd; 

现在我的处理器是:

公共类RecordTableProcessor实现ItemProcessor

//一些代码

返回项;}

作者:Flatfileitemwriter

现在我希望我的itemwriter只写ordNo和ordDate字段。而不是写整个记录类的5项。

知道怎么做吗?还有一个问题,我怎样才能只从item processor返回一些字段,而不是整个item,有什么方法可以返回我们想要的吗?

共有1个答案

景国兴
2023-03-14

假设您将ItemReader结果映射到记录类,然后在处理器中将您的DTO对象转换为另一种类型,例如SpecificReced。

return new SpecificRecord(record);

在Specific中,只记录需要的字段。

因此,在ItemWriter中,您可以编写新的SpecificRecord对象。

 类似资料:
  • 我正在编写一个spring批处理作业,在其中一个步骤中,我为处理器编写了以下代码: null 欢迎任何暗示。

  • 我正在使用RepositoryItemReader作为阅读器。我需要一起处理该块的整个读取器值列表。 当我试图通过扩展读取器返回列表来执行块处理时,在我的处理器中,我收到错误 类Car不能转换为java.util.list(Car位于加载程序“app”的未命名模块中);java.util.List位于加载程序“bootstrap”的java.base模块中 读者 贮藏室ˌ仓库 处理器 步骤

  • 我有一个工作的Spring批处理程序,可以创建一个平面文件,但我希望能够将标签放入我的字段。 这是我的Pojo学生的例子 这是我的划船地图 } 以下是我的XML文件摘录: 它产生以下输出 我希望能够给每个字段加上库斯特姆前缀,我希望能够编写一个平面文件,上面写着

  • 我正在尝试实现一个Spring批处理作业,为了处理记录,它需要2-3个db调用,这会减慢记录的处理速度(大小为100万)。如果我使用基于块的处理,它会单独处理每条记录,性能会很慢。因此,我需要一次性处理1000条记录,作为批量处理,这将减少数据库调用,并提高性能。但我的问题是,如果我实现Tasklet,那么我也会失去可重启性和重试/跳过功能,如果使用AggregateInputReader实现,我

  • 我正在使用JpaPagingItemReaderBuilder查询一个DB,结果被插入到另一个DB中。 查询返回的结果没有任何问题,但我得到了一个错误与读取器的返回,在处理器中,您可以检查我的编码和错误下面。 有谁能给我一点启示吗?为什么我不能处理结果?