Training, Workshops, Softwareentwicklung

Hibernate Tutorial

Batch Modus

Hibernate kann Updates und Inserts zu JDBC Batches zusammenfassen. Dazu benötigt man folgende Einstellungen:

properties.put(AvailableSettings.STATEMENT_BATCH_SIZE, 50);
properties.put(AvailableSettings.ORDER_INSERTS, true);
properties.put(AvailableSettings.ORDER_UPDATES, true);

Das Ergebnis ist folgendes:

doInHibernate(em -> {
    withTransaction(em, () -> {

                for (int i = 0; i < 100; i++) { (1)
                    Customer customer = new Customer();
                    customer.setFirstname("Buck");
                    customer.setLastname("Rogers");
                    em.persist(customer);
                }
            }
    );

    withTransaction(em, () ->
            em.createQuery("DELETE FROM Customer").executeUpdate()
    );
});


assertSelectCount(0);
assertInsertCount(2); (2)
assertDeleteCount(1);
1 wir führen 100 Inserts aus
2 es wurden nur zwei batch-inserts zur Datenbank gesendet (2*50, da Batch-size auf 50 steht)