MyBatisのtrimとprefixOverrides

MyBatisiBATIS(MyBatis)

MyBatisのtrimとprefixOverrides

MyBatisのtrimとprefixOverridesの使い方についてです。

trimはよくwhere句で使われます。

以下、記述例です。

<trim prefix="WHERE" prefixOverrides="AND |OR ">
AND COLUMN1 = '01'
</trim>

prefixOverrides属性にはパイプで区切られたオーバーライド対象の文字列を指定します。ここではスペースにも意味があります。

trim 要素のprefixOverrides属性のリストに含まれる文字列が先頭にあった場合は削除され、prefix 属性で指定された文字列は結果が空でない場合先頭に挿入されます。

上記の場合は以下のようなSQLになります。

WHERE COLUMN1 = '01'

その他、suffix属性もあります。suffixで指定した文字列は</trim>タグの部分で出力されます。

以下、記述例です。

<trim prefix="AND (" prefixOverrides="OR" suffix=")">
  <if test="search.key1 == 1">
    OR T1.COLUMN1 = 'A'
  </if>
  <if test="search.key2 == 1">
    OR T1.COLUMN1 = 'B'
  </if>
  <if test="search.key3 == 1">
    OR T1.COLUMN1 = 'C'
  </if>
  <if test="search.key4 == 1">
    OR T1.COLUMN1 = 'X'
  </if>
</trim>

コメント

タイトルとURLをコピーしました