Hibernate две версии одного и того же объекта - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть объект, который был загружен из базы данных в предыдущем запросе, который теперь изменен.Он все еще отключен в контексте персистентности.

Когда я отправляю и ввожу свой метод save (), вызывается первый entityManager.load (), чтобы получить предыдущее состояние объекта, выполнить некоторые сравнения, вычисленияи т. д. (сейчас я работаю с entity и entityBefore)

Сохранение объекта теперь приводит к ошибке.Я пытаюсь сохранить другой объект с тем же идентификатором.Решение на данный момент состоит в том, чтобы просто отключить entityBefore, а затем использовать saveOrUpdate.Кажется, работает как шарм.

Однако это только приводит к другой проблеме.Сущность содержит список других объектов (1-n).Удаление одного из них из списка возвращает ошибку, они ранее также были отсоединены.

В настоящий момент я не уверен, каков наилучший подход для решения всей этой проблемы.Как я могу управлять 2 разными версиями одного и того же объекта, не сохраняя обе в базе данных?Есть ли способ получить старое состояние из базы данных без изменения контекста?Нужно ли обновлять каждый объект в списке один за другим? ...

Спасибо за любые предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...