JPA
Postgresでバッチ アップサートを実行したいと思います。PK ではない一意の制約の競合をチェックしているため、マージを使用できません。Postgres で upsert するために、ON Conflict 機能を使用できるようになりました。基本的には、ネイティブクエリの実行を実行したいと思いますJPA
。クエリは次のようになります。
INSERT INTO user (user_id, display_name )
VALUES('1', 'sg27')
ON CONFLICT (user_id) DO UPDATE
SET display_name = 'sg27' RETURNING *;
オブジェクトのリストをループしてクエリを実行します。
だから私の質問は、ネイティブクエリ挿入の場合、のような手動フラッシュを使用できますかem.flush()
? バッチ挿入で機能しますか。
そうでない場合、誰かがこの問題の可能な解決策を教えてもらえますか?
御時間ありがとうございます。