4

「A」という名前のエンティティがあるとします。これには、nameとsystemIdという名前の2つの列があります。これらの列は一意のキーを制約します。たとえば、systemIdが「1」で名前が「test」のエンティティを複製することはできません。

私の質問は、Aエンティティのコレクションを挿入したいです。重複するエンティティをスキップしたいのですが、新しいエンティティを挿入するだけです。EntityManagerは、一意の制約が失敗した場合にこれらのエンティティをスキップできますか?どうすればこれを成功させることができますか?

4

1 に答える 1

4

JPAではエラー処理は許可されていません。エラーが発生した場合は、トランザクションにロールバックのマークを付ける必要があります。

それぞれを個別のトランザクションに挿入するか、トランザクション全体を再試行して、各パスで失敗したオブジェクトを拒否することができます。一意のフィールドで最初に選択を実行し、オブジェクトがすでに存在する場合はスキップすることもできます。

于 2012-06-18T13:20:16.177 に答える