Замена существующих строк новыми приводит к исключению дубликата ключа - PullRequest
7 голосов
/ 04 января 2011

все.У меня проблема с заменой существующих строк в таблице новыми.Я использую JPA и PostgreSQL DB.Я пытаюсь удалить все существующие строки, а затем создать новые, но получаю исключение: org.postgresql.util.PSQLException: ОШИБКА: двойное значение ключа нарушает уникальное ограничение "user_destination_pk".Все эти действия находятся внутри одной транзакции JTA.Кажется, что JPA не удаляет строки перед вставкой, но я не получаю исключения для удаления ... Любая помощь приветствуется.

Ответы [ 2 ]

11 голосов
/ 04 января 2011

Используйте метод Hibernate Session.flush() для очистки (выполнения SQL) удалений перед сохранением / добавлением новых объектов.

0 голосов
/ 04 января 2011

Вы можете создать уникальное ограничение как deferrable initially deferred

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