Предполагам, че вероятно актуализирате колекцията, от която четете, и също така актуализирате поле, което използва заявката. Ако е така, наскоро имах същия проблем.
MongoItemReader е четец на страници. Така че всеки път, когато писателят актуализира тези записи, читателят има по-малък набор, но страницата все още се увеличава.
Представете си, че имаме 20 елемента и четем по 5 наведнъж:
1) Чете елементи 1-5 от общо 20.
2) Актуализира елементи 1-5 и сега има общо 15 възможни елемента
3) Чете елементи 6-10 от общо 15.
4) Актуализира елементи 6-10 и сега има общо 10 възможни елемента.
5) Чете елементи 11-15 от 10 възможни елемента
6) Read връща null, защото няма нищо върнато за тази страница.
Така че сега сте обработили само половината.
Следвах урока по-долу, за да създам MongoDbCursorItemReader, който реши този проблем за мен:https://blog.zenika.com/2012/05/23/spring-batch-and-mongodb-cursor-based-item-reader/