Как JdbcBatchItemWriter определяет размер пакета?

Я просматривал документацию JdbcBatchItemWriter, но заметил, что нет способа указать размер пакета для использования дляjdbcTemplateиспользуется этим классом. Я думал, что класс с именемBatchв нем будет какой-то механизм для указания размера пакета, но похоже, что это не так. Теперь у меня есть следующие вопросы относительно определения размера партии:

  1. Эквивалентен ли размер пакета интервалу фиксации?
  2. Если нет, рассчитывается ли размер пакета автоматически?

И последнее, но не менее важное: есть ли способ явно указать размер пакета, который будет использоватьсяjdbcTemplate в JdbcBatchItemWriter при определении bean-компонента для JdbcBatchItemWriter учебный класс?

1 ответ

Решение

Фиксация (или размер пакета) будет включать все элементы в чанке, что регулируется commit-interval. Таким образом, для всех намерений и целей вы можете рассматривать интервал фиксации как размер пакета.

Одно предостережение к приведенному выше утверждению: ваш последний кусок может содержать меньше элементов, чем ваш интервал фиксации. Кроме того, если вы фильтруете какие-либо записи с помощью ItemProcessor, количество элементов, переданных вашему Writer, будет меньше, чем ваш интервал фиксации. Наконец, есть еще несколько кастомныхCompletionPolicy сценарии, которые могут привести к фиксации с большим (или меньшим) количеством элементов, чем ваш интервал фиксации.

Надеюсь, это поможет!

Другие вопросы по тегам