Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring batch spring批处理编写器返回null在文件中打印null_Spring Batch - Fatal编程技术网

Spring batch spring批处理编写器返回null在文件中打印null

Spring batch spring批处理编写器返回null在文件中打印null,spring-batch,Spring Batch,我是新来的。 实际上,我正在尝试验证writer中的数据。 因此,这里我从处理器获得了代位权(pojo类),现在我必须检查它的有效性——如果该对象已经存在于映射中,则不将该值返回到文件; 否则返回该数据 因此,当我在if中返回null时,它会在输出文件中打印null 实际上,我想从文件中跳过该记录以删除重复项 聚合方法: @Override public String aggregate(Subrogration subrogration) { StringBuilder result

我是新来的。 实际上,我正在尝试验证writer中的数据。 因此,这里我从处理器获得了
代位权
(pojo类),现在我必须检查它的有效性——如果该对象已经存在于映射中,则不将该值返回到文件;
否则返回该数据

因此,当我在
if
中返回null时,它会在输出文件中打印
null

实际上,我想从文件中跳过该记录以删除重复项

聚合方法:

@Override
public String aggregate(Subrogration subrogration) {

    StringBuilder result = new StringBuilder();

    //StringBuffer sb = new StringBuffer();

    System.out.println("inside aggregator");
        result.append(subrogration.toString());

        logger.info("Subrogration result" + subrogration.toString());
        if(SubrogrationFileTransferTasklet.map.containsKey(subrogration.getGRP_NBR()+subrogration.getSECT_NBR())){
            System.out.println("douplicate value");
            return null;
        }
        else{
                    return result.toString();
        }

}
并且文件输出是

9970150000050
997500150000050
900250000050
99865400001000.0
9980250000100
9986520000100
9999050000100
null
01890001000.0
02076010001000.0
0207640001000.0
02076000001000.0
020760001000.0
02076000001000.0
020703010001000.0
02076880001000.0

我不希望文件中出现空值。

要执行此操作,您应该在
项目处理器中进行筛选,而不是在
线性聚合器中进行筛选。您的
ItemProcessor
应返回null,该值不会被写出。在此过程中,使用
LineAggregator
进行过滤太晚

您可以在以下文档(第6.3.2节)中阅读有关使用
ItemProcessor
筛选记录的更多信息: