私たちのアプリケーションは、既存のレコードのセットを置き換えるレコードのリストを受け取ります。各レコードは、シーケンスに基づく主キーと、別のフィールドの一意の制約を持ちます。これは、他のフィールドの外部キー(つまり代替キー)です。Hibernateを使用して一連のレコードを置き換える正しい方法は何ですか
それはこのような何かを行く:
for each old record
delete the old record
next
for each new record
insert new record
next
問題は、Hibernateは、削除する前に挿入を実行し、その結果、ユニーク制約違反を上げているということです。新しいレコードには古いものと同じ代替キーがあります。
一意の制約を削除しても問題ありません。
このようなことを行う正しい方法は何ですか?
削除が発生した後にEntityManagerをフラッシュしましたか? –