После многого поиска Google не нашел ответа на мой вопрос, кроме версии для спящего режима спящего режима. Но я столкнулся с такой ситуацией на аналогичной должности, которая датируется 2003 годом.IllegalStateException: произошла ошибка при сохранении объекта <entity> Копия объекта <entity> была назначена другому объекту <entity_copy>
чем проблема:
//in the first session I do
session1.save(entity);
session1.getTransaction().commit();
session1.close();
//in the second session (after client response), I get back the serialized copy of the entity
entityCopy = deserialize(jsonString);
entityCopy.setEntityDetail(newDetail); //1
session2.merge(entityCopy); //EXCEPTION!
Если строка комментария 1, все работает отлично!
Исключение:
IllegalStateException: Произошла Ошибки при сохранении сущности # 4700 Субъект копия # 4700 был уже назначен на другой объект @ 2e7b134a
Вопросов:
- Что не так в моей картине?
- Как я понимаю, операция merge() была реализована для тех случаев, когда мы alreadty имеем копию экземпляра в кеше. Я не прав?
PS
- Если это важно Entity -> EntityDetail связаны с ленивым, orphanRemoval = правда, один-два-один отношения
- I перекрытая equals() и hashCode().