繰り返しコメントのitem_has_next変数
0.9.12から次の繰り返しの要素があるかどうかをitem_has_nextというbooleanの変数で表せるようにしました。(itemは繰り返えされる要素の識別子)
select * from employee where /*%for age : ages */ age = /* age */30 /*%if age_has_next */ or /*%end */ /*%end */
しかし、上のSQLだとSQLのツールにコピペしても動かないので次のようにorを埋め込み変数コメントで表してください。
select * from employee where /*%for age : ages */ age = /* age */30 /*%if age_has_next */ /*# "or" */ /*%end */ /*%end */
これで、コピペしてSQLのツールでも動くし、実行時にはorが連結されます。繰り返しコメントや埋め込み変数コメントの詳細はドキュメントをどうぞ。(ドキュメントは埋め込み変数コメントを使う形になっていませんが直しておきます)
- http://doma.sandbox.seasar.org/reference/sqlfile.html#繰り返しコメント
- http://doma.sandbox.seasar.org/reference/sqlfile.html#埋め込み変数コメント
自分で作っておいて、埋め込み変数コメントにリテラルを入れられることに気づいていなかった。ちょっと面白い。これで、前の/*%hasNext 〜*/よりわかりやすい表記で同等以上の機能が実現できることになりました。