SQLファイルの繰り返しコメントのhasNextの構文を見直し

これまでこんな構文でした。

select * from employee where 
/*%if ages.size() > 0 */
  /*%for age : ages */
  age = /* age */30
/*%hasNext "  or"*/
  /*%end */
/*%end */

次のバージョン(0.9.12)では、FreeMarkerっぽくxxx_has_nextという変数にbooleanの値を割り当てこうすることにします。

select * from employee where 
/*%if ages.size() > 0 */
  /*%for age : ages */
  age = /* age */30
    /*%if age_has_next */
  or
    /*%end */
  /*%end */
/*%end */

この場合だと、ifコメントに統合できて見通しがいいですし、forをネストしても外側のxxx_has_nextを参照できて汎用性が高いからです。

ここでは、例としてorの連結を繰り返していますが、このようなクエリを書く場合は本当はin句を使ったほうがすっきりします。

select * from employee where 
  age in /* ages */(10, 20, 30)