おそらく、読み取り元のコレクションを更新していて、クエリが使用しているフィールドも更新していると思います。もしそうなら、私は最近同じ問題を抱えていました。
MongoItemReaderはページリーダーです。したがって、ライターがこれらのレコードを更新するたびに、リーダーのプールは小さくなりますが、ページは増え続けます。
したがって、20個のアイテムがあり、一度に5個のアイテムを読み取ると想像してください。
1)合計20からアイテム1〜5を読み取ります。
2)アイテム1〜5を更新し、合計15の可能なアイテムがあります
3)合計15からアイテム6〜10を読み取ります。
4)アイテム6〜10を更新し、合計10個のアイテムが可能になりました。
5)10個の可能なアイテムのうち11〜15個のアイテムを読み取ります
6)そのページには何も返されないため、Readはnullを返します。
これで、半分しか処理できませんでした。
以下のチュートリアルに従って、この問題を解決するMongoDbCursorItemReaderを作成しました。