我在AbstractItemCountingItemStreamItemReader上实现了以下方法,如下所示:
@Override
protected Object doRead() {
Product product = productIteratorItemReader.read();
if (product == null) {
readNextProducts();
product = productIteratorItemReader.read();
}
return product;
}
@Override
protected void doOpen() {
initialProductIterator(); // Initialize the iterator to be able read from it
}
最后是
public void readNextProducts() {
if (productsIdListIterator.hasNext()) {
List<Long> productIds = productsIdListIterator.next();
List<Product> products =
productService.queryForProducts(departmentIds);
productIteratorItemReader = new IteratorItemReader<>(products);
}
}
不幸的是,很难找到任何关于如何使用它的例子。这是我的简单实现。然而,当我开始工作时,我会遇到下面的例外情况,这对我来说没有什么意义。我不知道为什么我需要设置一个名字,也不知道如何设置。任何帮助都将不胜感激。提前感谢
java.lang.IollegalArgumentException:为了定义执行上下文键前缀,必须指定名称。
我在构造函数中使用super.setName(NAME(