SQLのコメント式のforループでhasNextをブロックコメントに。
id:newtaさんからアイデアもらってhasNextコメントはブロックコメントにしました。
JPetStoreのサンプルではこんなSQLファイルが登場します。
SELECT PRODUCTID, NAME, DESCN, CATEGORY FROM PRODUCT WHERE /*%if keywords.size() > 0 */ /*%for keyword : keywords */ lower(name) like /* @contain(keyword.toLowerCase()) */'a' OR lower(category) like /* @contain(keyword.toLowerCase()) */'a' OR lower(descn) like /* @contain(keyword.toLowerCase()) */'a' /*%hasNext "OR"*/ /*%end*/ /*%end*/
keywordsのリストに A と B が入っているとすると、こんなSQLが生成されます(ここに示しているのはバインド変数を実際の値に置き換えたログ用SQLです)。
SELECT PRODUCTID, NAME, DESCN, CATEGORY FROM PRODUCT WHERE lower(name) like '%a%' OR lower(category) like '%a%' OR lower(descn) like '%a%' OR lower(name) like '%b%' OR lower(category) like '%b%' OR lower(descn) like '%b%'