Training, Workshops, Softwareentwicklung

Hibernate Tutorial

Detach

Der EntityManager bietet eine Methode detach(), mit der wir ein Objekt aus dem First-Level-Cache entfernen können.

DetachTest
Customer customer = em.find(Customer.class, 1L); (1)

assertNotNull(customer);
assertEquals("Buck", customer.getFirstname());
assertEquals("Rogers", customer.getLastname());
customer.setFirstname("Alice"); (2)

em.detach(customer); (3)

LOG.info("Before 2nd find");
customer = em.find(Customer.class, 1L); (4)
assertNotNull(customer);
assertEquals("Buck", customer.getFirstname());
1 Wir laden das Objekt von der Datenbank.
2 Wir ändern das Objekt.
3 Das Objekt wird aus dem First-Level-Cache gelöscht.
4 Das Objekt muss erneut geladen werden.