引用论坛上一个从未得到答复的老问题:
我是否有意获得一个空列表作为ItemWriter.write()方法的输入?在我的例子中,我必须处理这个条件,因为“什么都不写”会导致错误。我使用的是第一个CompositeItemProcessor,其中第一个ItemProcessor过滤掉项目。最后n项被过滤以使最后一个输入列表为空,这可能是一种编码。 我希望在输入为空时不会调用write(),因为无论如何都没有什么可写的。你认为如何?我要为这个造一张票吗?
http://forum.spring.io/forum/spring-projects/batch/723820-itemwriter-write-gets-called-with-empty-list-as-input
我现在的处境完全一样。在项目的处理过程中,可能每个项目都会被过滤。在这种情况下,我希望不应该调用write。这是否意味着我需要防止编写器实现中出现空列表的情况?
发布于 2018-01-10 17:20:22
据我所知,是的,可以用一个空的列表来称呼作者。
在处理SimpleChunkProcessor中的块时,对块中的所有输入调用处理器,并将结果添加到输出中,如所见的这里。如果在处理器中跳过块中的所有项(返回null),则transform方法将返回带空项列表的块。这个输出是作者应该写的,因此调用写入器时需要一个空列表(写)。
https://stackoverflow.com/questions/48177122
复制相似问题