私は PostgreSQL で Spring を使用しており、次のようなコードを使用して一種の UPSERT を実行しようとしています。
jt.update("delete from A where id = 1")
jt.update("insert into A (id, value) values (1, 100)")
トランザクション内でラップされます ( を使用@Transactional
)。
問題は、多くの同時リクエストがある場合、このコードが「重複キー」エラーで失敗することです。つまり、トランザクションが分離されていないか、または...
トランザクションの仕組みについて何か不足していますか? ここで別のメカニズムを使用する必要がありますか (例: スレッド同期)?