Наше приложение получает список записей, которые должны заменить существующий набор записей. Каждая запись имеет первичный ключ, основанный на последовательности, и уникальное ограничение для другого поля, которое является внешним ключом (то есть альтернативным ключом) для чего-то еще.
Это выглядит примерно так:
for each old record
delete the old record
next
for each new record
insert new record
next
Проблема в том, что Hibernate запускает вставки перед удалением и, следовательно, вызывает нарушение уникального ограничения. Новые записи имеют тот же альтернативный ключ, что и старые.
Если я уберу уникальное ограничение, оно будет работать нормально.
Как правильно сделать что-то подобное?