我想验证表中共享生产者的记录的开始和结束日期。我将按照productId的顺序JDBCItemReader
读取数据库中的所有寄存器。
这是我的桌子的一个例子:
ID|Name|StartDate|EndDate|ProductID|.....
在正常的块处理中,我将一对一地读取-处理项目,然后将其写入,但我想在我的处理器中恢复一个列表,同时ProductId不变,并且当此ID发生变化时,请进行一些验证和更新我的作品,然后将它们传递给作家,但我认为这是不可能的,因为我无法将作品列表发送给作家,我必须将它们一对一地发送。
我需要做的例子(伪描述):
@Component
public class CheckAuxDuplicatesProcessor implements ItemProcessor<MyDTO, MyDTO>{
private BigDecimal currentProdIdProduct = BigDecimal.ZERO;
private List<MyDTO> currentList;
@Override
public MyDTO process(MyDTO arg0) throws Exception {
if(!currentProdIdProduct.equals(dto.getProdIdProduct())){
//call to process items (Not implemented yet)
//return list of items
currentList.clear();
}
currentList.add(dto);
return null;
}
}
如果我创建一个完整的 Tasklet 类并在execute method
中实现所有逻辑(读取所有寄存器),循环并进行验证,对其进行编辑,最后通过给读者看。
无论如何,我认为这最后一个选择是一个糟糕的设计想法。但是我不知道有什么其他方法可以制作这样的东西。
答案 0 :(得分:0)