Spring Batch, как написать карту
Я уже видел много учебников и весенних материалов, но я нашел только примеры, которые содержат простой объект в ItemWriter.
Например...
@Bean
JdbcBatchItemWriter<Student> writer = new JdbcBatchItemWriter<>();
writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<Student>());
writer.setItemPreparedStatementSetter(new ItemPreparedStatementSetter<Student>(){
@Override
public void setValues(Student student, PreparedStatement ps) throws SQLException {
ps.setLong(1,student.getStudentCode());
ps.setObject(2,student.getStudentGrade());
}});
writer.setSql(QUERY_STUDENT_GRADE_INSERT);
writer.setDataSource(dataSource);
return writer;
в моем реальном сценарии я должен написать карту, которая содержит ключ и значение, например:
Map<KeyObject,Long>
Но я понятия не имею, как кодировать что-то, что сможет вставить весь контент, который я получил в мою Карту.
Есть еще один вопрос...
Когда я обрабатываю определенное количество элементов, мне нужно сохранить эти данные в базе данных, но предыдущий контент остается в моей коллекции, таким образом... как я могу очистить содержимое карты после записи?
1 ответ
Решение
Решение было заменить мою карту для списка
Я просто использую лямбду, чтобы отфильтровать объекты в списке и записать их через общий itemWriter.