我在批处理中使用 JpaPagingItemReader 修改了Readers查询的基础数据 . 编写器将状态设置为 COMPLETED ,然后继续处理下一个块 .

结果是省略了行 . 如果要处理100行并且块(和读取器大小)为10,则读取10行并处理它们 . 通过第二次读取,他然后尝试读取数据的第2页,但在我的情况下使用的查询也会在其where-clause中询问Status . 所以记录的数量同时减少到90 . 现在,Page 2的Reader将从该结果列表中读取11-20行并跳过前10行 .

由于没有其他Reader for JPA my question is - 如果可以操纵Reader类来始终传递前10行 . 请不要抵消!例如,在处理器或编写器中操作项目Reader的当前页面 . 或者以不同的方式解决这个问题 .

我们不能使用Cursor项目Reader,因为它会使Cursor保持打开状态,导致旧的旧DB2数据库中的锁定情况,我们必须从中读取数据 .