8

JPAPostgresでバッチ アップサートを実行したいと思います。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()? バッチ挿入で機能しますか。

そうでない場合、誰かがこの問題の可能な解決策を教えてもらえますか?

御時間ありがとうございます。

4

1 に答える 1