Doma 1.21.0 リリース
Doma 1.21.0 をリリースしました。
ダウンロードはこちらからどうぞ。
Mavenをご利用の方はこちらを参照ください。
以前のバージョンから移行するには移行ガイドを参照ください。
リリースノート
機能紹介
ざっくりと。
DOMA-255
PostIterationCallbackインタフェースが新しく追加されました。
このインタフェースを使うと、イテレーション検索の完了後に任意の処理を実行できます。
Salary sum = dao.selectByAge(30, new PostIterationCallback<Salary, Employee>() { @Override public Salary iterate(Employee target, IterationContext context) { ... } @Override public Salary postIterate(Salary result, IterationContext context) { // ここで任意の処理! ... } });
DOMA-256
コネクションプーリングを使っていないがコネクション確立のコストを避けたいなど、物理的な1コネクションで複数トランザクションを実行したい場合に利用できます。利用ケースはおそらく少ないです。
KeepAliveLocalTransaction tx = AppConfig.getKeepAliveLocalTransaction(); tx.init(); // ここでコネクションを確保 try { try { tx.begin(); ... tx.commit(); } finally { tx.rollback(); } try { tx.begin(); ... tx.commit(); } finally { tx.rollback(); } } finally { tx.destroy(); // ここでコネクションを破棄 }
興味がある場合は、チュートリアルのサンプルコードもどうぞ。
https://www.seasar.org/svn/doma/tags/1.21.0/doma-tutorial/src/test/java/tutorial/KeepAliveLocalTransactionTest.java
DOMA-257
これまでバッチサイズは設定クラスでしか指定できませんでしたが、Daoのメソッド個別に指定できるようになりました。
@BatchInsert(batchSize = 30) int[] batchInsert(List<Employee> employees);
なんで、この機能がこれまでなかったかというと、たぶん実装し忘れですね。