気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

S2Daoのバッチ更新で手動作成SQLファイルを実行できるか調べてみた

ループ内更新による性能劣化を改善するために、S2Daoのバッチ更新で IO回数を減らしたかったので調査しました。

今回は、手動作成SQLファイルの実行を前提としています。

S2Daoのバッチ更新が使える条件

そもそも、手動作成SQLファイルの実行では、バッチ更新できませんでした。。

いろいろ制約があり、S2Daoを使う限り、ループ内SQL実行は避けられないみたいです。

参考

S2Dao_一括更新 http://s2dao.seasar.org/ja/s2dao.html#Batch

Domaなら、S2Daoで出来なかったことができる

@BatchUpdate の exclude 要素に指定されたプロパティを更新対象外が可能。 https://doma.readthedocs.io/en/2.11.0/query/batch-update/#sql

@BatchUpdateのsqlFileにtrueを設定することで、任意のSQLファイルにマッピングできます http://doma.seasar.org/reference/query/batch_update.html