Как JdbcBatchItemWriter определяет размер пакета? - PullRequest
0 голосов
/ 23 октября 2019

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

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

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

1 Ответ

2 голосов
/ 23 октября 2019

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

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

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

...