Решение с использованием добавления столбца состояния:
Когда данные вставляются в вашу таблицу, статус должен быть «НЕ ОБРАБОТАНО». Когда ваш ItemReader читает данные, измените статус на «В ПРОЦЕССЕ», когда ваш ItemProcessor и ItemWriter завершат свою задачу, измените статус на «ОБРАБОТАНО». Таким образом, вы можете убедиться, что ваш ItemReader читает только данные «НЕ ОБРАБОТАНО».
Решение с использованием пользовательской таблицы, если вы не можете изменить исходную таблицу:
Если вы не можете изменить исходную таблицу БД, вы можете сохранить время последнего запроса в пользовательской таблице. Скажем, во время первого запуска вы можете получить все записи и сохранить время, в течение которого вы запрашиваете базу данных, в некоторой пользовательской таблице. На следующий день, когда вы запустите задание, снова получите записи со времени, которое вы сохранили в пользовательской таблице, до текущего времени. Теперь замените старую отметку времени в пользовательской таблице на текущее время.