Я уже просмотрел множество ссылок, таких как: 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;
        }   
    }
} 
0
Pra_A 15 Апр 2019 в 23:25

2 ответа

Лучший ответ

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

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

просто проверяю записи в процессоре перед тем, как записать его в MongoDB.

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

0
Mahmoud Ben Hassine 16 Апр 2019 в 08:04