Я не понимаю, как мне обновить состояние объекта, который уже находится в базе данных.Если быть более конкретным, предположим, что у меня есть «сущность» с таким кодом:
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(entity);
em.getTransaction().commit();
entityManager.close();
Поскольку я закрыл EntityManager, мой экземпляр сущности отсоединен.Теперь предположим, что у меня есть другие объекты, использующие этот экземпляр объекта.Если я хочу получить новое состояние этого объекта из базы данных, я почти не могу использовать em.refresh (), потому что объект отсоединен.Метод em.merge () возвращает управляемый экземпляр, и поскольку это не тот же экземпляр моего объекта, это может быть проблемой.Я могу предвидеть два решения:
- создать новый метод в моем объекте сущности, который обновляет свое состояние, используя данный экземпляр сущности.
- не закрывать диспетчер сущностей (последствия! ??)
Итак, что мне делать в этом случае?Как я могу обновить состояние моего объекта-сущности, не теряя при этом все ссылки из других объектов?Идеи?