Как правильно заменить набор записей с помощью Hibernate? - PullRequest
0 голосов
/ 21 октября 2011

Наше приложение получает список записей, которые должны заменить существующий набор записей. Каждая запись имеет первичный ключ, основанный на последовательности, и уникальное ограничение для другого поля, которое является внешним ключом (то есть альтернативным ключом) для чего-то еще.

Это выглядит примерно так:

   for each old record
      delete the old record
   next

   for each new record
      insert new record
   next

Проблема в том, что Hibernate запускает вставки перед удалением и, следовательно, вызывает нарушение уникального ограничения. Новые записи имеют тот же альтернативный ключ, что и старые.

Если я уберу уникальное ограничение, оно будет работать нормально.

Как правильно сделать что-то подобное?

1 Ответ

0 голосов
/ 21 октября 2011

Два предложения:

  1. вы можете использовать слияние, это «заменит» запись в базе данных в зависимости от вашей реализации;
  2. вы можете попытаться сбросить все модификации между обоими форсами.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...