Training, Workshops, Softwareentwicklung

Hibernate Tutorial

Hibernate Template

Da wir für praktisch jede Operation einen EntityManager benötigen, bietet es sich an, dafür ein Template anzulegen. Der Einfachheit halber packen wir es als statische Methode mit in die PersistenceHelper Klasse.

Template im PersistenceHelper
public static void doInHibernate(Consumer<EntityManager> consumer) {
    EntityManager em = getEntityManager();
    try {
        consumer.accept(em);
    } catch (Exception x) {
        LOG.error("Exception in Template", x);
    } finally {
        if (em.isOpen()) {
            em.close();
        }
    }
}

Unser Test sieht nun etwas aufgeräumter aus:

FindCustomerTemplateTest.java
@Test
public void testFindCustomer() {

    doInHibernate(em -> {
        Customer customer = em.find(Customer.class, 1L);

        assertNotNull(customer);
        assertEquals("Buck", customer.getFirstname());
        assertEquals("Rogers", customer.getLastname());
    });
}