Hey!
próbuję zrozumieć ideę metody merge() z Hibernate.
Czytałem że bardzo popularny jest scenariusz, gdzie pobieramy obiekt w jednej sesji, zamykamy sesję, edytujemy obiekt,( który jest wtedy detached) a następnie otwieramy kolejną sesję i utrwalamy zmodyfikowany obiekt w bazie danych.
Niestety jak zamknę sesję, to nie mogę edytować obiektu.
Robię to w skrócie tak:
W 1 sesji:
em.getTransaction().begin();
Employee employee2=em.getReference(Employee.class,6040);
em.getTransaction().commit();
em.close();
//poza sesja
employee2.setName("Ciasteczko"); //tu wywala błąd
// w 2 sesji chciałbym utrwalić obiekt
em=JPAUtil.getMySqlEntityManagerFactory().createEntityManager();
em.getTransaction().begin();
Employee mergedEmployee=(Employee)em.merge(employee2);
em.getTransaction().commit();
em.close();