Spring Batch, как выполнить Skip или не считать для записи? - PullRequest
0 голосов
/ 15 апреля 2019

Я уже прошел по многим ссылкам, таким как: Spring Batch - Пропустить запись при обработке и просто хотел проверить записи в процессоре перед записью его в MongoDB.

У меня 500 записей в записи Oracle DB и 162th, ниже строки кода 1 удовлетворяется и после того, как никакие другие записи не рассматриваются для записи , поэтому вместо 500 записей я должен получить 480 записей, 20 записей, которые я хочу пропустить, потому что его EFFECTIVE_DATE равен нулю, который я не хочу рассматривать для записи.

public class StudentRowMapper implements RowMapper<Student> {

    @Override
    public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
        if(rs.getString("EFFECTIVE_DATE") == null) { //Line-1
            return null;
        }
        else {
            Student Student = new Student();
            Student.setRowIdObject(rs.getInt("PK_ID"));
            .............
            .............
            .............
            .............

            return Student;
        }   
    }
} 

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Согласившись с @Mahmoud, вы также можете:

  1. Добавить этот фильтр по запросу вашего читателя mongodb: "{EFFECTIVE_DATE: null}"
  2. Вернуть null в вашем процессоре
0 голосов
/ 16 апреля 2019

просто ищет подтверждение записей в процессоре перед записью его в MongoDB.

ValidatingItemProcessor - это то, что вы ищете.Он позволяет проверять элементы и пропускать их или фильтровать (см. Параметр filter), прежде чем передавать их автору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...