У меня проблемы с получением Hibernate для выполнения массовой вставки на MySQL.
Я использую Hibernate 3.3 и MySQL 5.1
На высоком уровне, вот что происходит:
@Transactional
public Set<Long> doUpdate(Project project, IRepository externalSource) {
List<IEntity> entities = externalSource.loadEntites();
buildEntities(entities, project);
persistEntities(project);
}
public void persistEntities(Project project) {
projectDAO.update(project);
}
В результате получается n записей журнала (по 1 на каждую строку):
Hibernate: вставить в ProjectEntity (имя, parent_id,
путь, идентификатор_проекта, состояние, тип) значения
(?,?,?,?,?,?)
Я бы хотел, чтобы это было в пакетном режиме, чтобы обновление было более производительным. Вполне возможно, что эта подпрограмма может привести к созданию десятков тысяч строк, и отключение БД на строку является убийцей.
Почему бы не получить этот пакет? (Насколько я понимаю, пакетные вставки должны быть по умолчанию в спящем режиме).