У меня есть простой пример объекта A, который имеет идентификатор и поле версии.Стратегия генерации идентификатора установлена на TABLE.Свойства hibernate.jdbc.batch_size
и hibernate.jdbc.batch_versioned_data
установлены на 20
и true
.
Я пытаюсь выполнить пакетную вставку объекта A со следующим:
for (int i = 0; i < 500; i++) {
A a = new A();
a.persist();
if (i % 20 == 0) {
em.flush();
em.clear();
}
}
Глядя на журналы MySQL, это приводит к 500 отдельным insert into a (version, id) values (0, X)
операторам, тогда как я ожидал, что что-то вроде insert into a (version, id) values (0, 1), (0, 2),...(0, 20)
будет повторяться 25 раз.
Установка hibernate.jdbc
уровня журнала для отладки показывает:
org.hibernate.jdbc.AbstractBatcher - Executing batch size: 20
org.hibernate.jdbc.AbstractBatcher - no batched statements to execute
Использование Hibernate 3.6.8, MySQL 5.5.
Чего мне здесь не хватает?