Помимо простого вызова clear()
в сеансе, похоже, у вас могут быть проблемы с тем, как вы используете Hibernate:
Судя по всему, проблема в том, что объект, который я извлекаю из базы данных имеет тот же идентификатор, что и тот, который я хочу обновить (как и должно быть), НО это не те же объекты!
Вы хотите сказать, что у вас есть две разные сущности с одинаковым идентификатором? Если это так, то вы должны найти другое поле, которое однозначно идентифицирует разные объекты.
выберите любой из них:
1 - вы можете закрыть сеанс после загрузки объекта и открыть новый сеанс для обновления
2 - вместо создания нового объекта для обновления используйте старый один и отредактируйте его.
3 - отсоединить ваш первый объект от сеанса - session.evict(myEntity)