Удаление и создание Eclipselink приводит к исключению уникального ограничения
У меня есть объект, который имеет пользовательский первичный ключ. Сначала я удаляю эту сущность, а затем воссоздаю эту сущность с тем же первичным ключом. Это приводит к уникальному исключению ограничения при коммите / сбросе. В качестве обходного пути я вызываю сброс между операцией удаления и создания. Есть ли способ сделать все это правильно / лучше, то есть без вызова сброса на менеджере сущностей?
Спасибо Манфред
1 ответ
em.remove( yourEntity )
команда зарезервирует вашу сущность для удаления из контекста постоянства, а затем из базы данных, но она не вступает в силу немедленно. Я могу себе представить, что удаление из контекста персистентности и базы данных еще не произошло, когда вы сохранили новую сущность.
Вы можете попытаться удалить эту сущность с помощью пользовательского запроса JPQL, например "DELETE FROM YourEntity ye WHERE ye.primary1 = :primary1 AND ye.primary2 = :primary2... whatever;"
после удаления (). Я предполагаю, что это немедленно удаляет вашу сущность из контекста постоянства, но я не уверен. Попробуйте, и дайте нам знать:)