Jeg gætter på, at du sandsynligvis opdaterer den samling, du læser fra, og du opdaterer også et felt, som forespørgslen bruger. Hvis ja, så havde jeg det samme problem for nylig.
MongoItemReader er en sidelæser. Så hver gang skribenten opdaterer disse poster, har læseren en mindre pulje, men siden vokser stadig.
Så forestil dig, at vi har 20 elementer og læser 5 elementer ad gangen:
1) Læser punkt 1-5 fra i alt 20.
2) Opdaterer punkt 1-5, og nu er der i alt 15 mulige varer
3) Læser punkt 6-10 fra i alt 15.
4) Opdaterer punkt 6-10, og nu er der i alt 10 mulige varer.
5) Læser punkt 11-15 af 10 mulige poster
6) Læs returnerer null, fordi der ikke er returneret noget for den side.
Så nu har du kun behandlet halvdelen.
Jeg fulgte vejledningen nedenfor for at oprette en MongoDbCursorItemReader, som løste dette problem for mig:https://blog.zenika.com/2012/05/23/spring-batch-and-mongodb-cursor-based-item-reader/