Java ItemWriter提交仅在第一个提交间隔内提交

Java ItemWriter提交仅在第一个提交间隔内提交,java,spring-batch,itemwriter,Java,Spring Batch,Itemwriter,我试图从数据库中选择数据,更新每个对象,然后在itemwriter中更新数据库 我试图在每次更新后刷新DAO,但没有任何改变 该配置非常基本,有一个读卡器、一个写卡器和一个100的提交间隔 读者正在按预期工作: @覆盖 public Order read()引发异常、UnexpectedInputException、ParseException、NontTransientResourceException{ if(迭代器==null){ 列出所有=查找器(); 迭代器=all.listItera

我试图从数据库中选择数据,更新每个对象,然后在itemwriter中更新数据库

我试图在每次更新后刷新DAO,但没有任何改变

该配置非常基本,有一个读卡器、一个写卡器和一个100的提交间隔

读者正在按预期工作:

@覆盖
public Order read()引发异常、UnexpectedInputException、ParseException、NontTransientResourceException{
if(迭代器==null){
列出所有=查找器();
迭代器=all.listIterator();
}
if(iterator.hasNext()){
返回iterator.next();
}否则{
返回null;
}
}
作者也很基础:


public void write(List问题是您正在从ItemReader返回null。如果您返回null,Spring批处理将假定已到达提要的结尾,并将终止作业。由于您在每个块之后返回null(在您的情况下为100),Sprint批处理将在处理100条记录后终止


请使用@PostConstruct创建方法,获取所有要处理的记录,并将ItemReader更改为每次返回1,读取所有记录时返回null。

您在ETACommandServiceImpl.UpdateStatCommande(o)中做什么方法?它只是更新数据。我不认为这一点有问题,因为它已经可以处理XML中硬编码的请求。但是我需要遍历类来动态生成请求。你确定你的读取器在第一个块之后没有返回null吗?我检查过,当迭代器没有更多元素时它返回null,但它已经是c如您所述。读取器的第一个调用从数据库检索数据,然后调用迭代器将元素逐个返回给编写器,当迭代器没有更多元素时,它返回null,我只是检查了您在哪里使用块大小?在my job.xml