Ich habe Probleme, Hibernate zu erhalten, um eine Masseneinfügung auf MySQL durchzuführen.Hibernate/MySQL Masseneinfügung Problem
Ich verwende Hibernate 3.3 und 5.1 MySQL
Auf einem hohen Niveau, das ist, was passiert:
@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);
}
Dies führt zu n-Log-Einträge (1 für jede Zeile) wie folgt:
Ruhezustand: (??????,,,,,) einfügen in ProjectEntity (Name, parent_id, Pfad, project_id, Zustand, Typ) Werte
Ich mag würde dies batched zu sehen bekommen, so das Update mehr performant ist. Es ist möglich, dass diese Routine dazu führen könnte, dass Zehntausende von Zeilen generiert werden, und ein DDB-Trip pro Zeile ist ein Mörder.
Warum ist das nicht batched bekommen? (Ich gehe davon aus, dass Stapeleinfügungen standardmäßig durch Ruhezustand festgelegt werden sollten).
Wird dies Batching von SQL-Anweisungen aktivieren? (Ob die Sessions State-Sounds eher orthogonal zum Batching hält, aber vielleicht schließe ich zu viel aus dem Klassennamen) – meriton
@meriton Ich habe meine Antwort aktualisiert, um weitere Details hinzuzufügen. –
+1: Jetzt bekomme ich es, danke! – meriton