iBatis2に関するメモ書きです。
removeFirstPrepend
初めの入れ子のタグが生成するタグのprependを削除する
例えばnameまたはvalueで絞り込みたいため、下記のSQLを記述したとします。
WHERE
<isNotEmpty property="name" prepend="AND">
name = #name#
</isNotEmpty>
<isNotEmpty property="value" prepend="AND">
value = #value#
</isNotEmpty>
nameかvalueのどちらかは必ずNotEmptyになるので、WHERE句をdinamicタグを使わずに記述しています。
nameがNotEmpty、valueがEmptyのとき、WHERE AND name=#name#
が出力され、SQL構文エラーになります。
この場合removeFirstPrepend="true"
を付与すれば、最初の要素にはANDが付かず、正しいSQL文が出力されます。
WHERE
<isNotEmpty property="name" prepend="AND" removeFirstPrepend="true">
name = #name#
</isNotEmpty>
<isNotEmpty property="value" prepend="AND" removeFirstPrepend="true">
value = #value#
</isNotEmpty>
#
, $
のエスケープ
##
, $$
と2回連続で記述します。