Tengo problemas para que Hibernate realice una inserción masiva en MySQL.Hibernate/MySQL Problema de inserción masiva
estoy usando Hibernate 3.3 y MySQL 5.1
En un nivel alto, esto es lo que está pasando:
@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);
}
Esto da lugar a entradas de registro n (1 por cada fila) de la siguiente manera:
Hibernate: (??????,,,,,) insertar en ProjectEntity (nombre, parent_id, camino, project_id, estado, tipo) valores
Me gustaría ver que esto se realice por lotes, por lo que la actualización es más efectiva. Es posible que esta rutina genere decenas de miles de filas, y un viaje de db por fila es un asesino.
¿Por qué no se consigue esto por lotes? (Tengo entendido que se supone que las inserciones por lotes deben ser predeterminadas, cuando corresponda, por hibernación).
¿Esto permitirá el procesamiento por lotes de instrucciones SQL? (Si las sesiones mantienen sonidos de estado en lugar de batching ortogonales, pero tal vez infiero demasiado del nombre de la clase) – meriton
@meriton He actualizado mi respuesta para agregar más detalles. –
+1: ¡Ahora lo entiendo, gracias! – meriton