iBatisのサブクエリに複数のパラメータを渡す
iBatisで1対多のテーブルからの取得などの場合にサブクエリの指定は次のように行う。
<result property="history" column="id" select="getHist"/>
これで、 getHist のSQL中で id の値は #value# で参照できるようになる。サブクエリに渡す値が一つで足りる場合は問題ないが、複合キーなどの場合に駆動表の複数カラムをgetHist側のSQLで参照したい場合があるこの方式では渡せない。
複数渡したい場合は column部分の記述を次の様にする。
column="{ 参照名 = DBカラム名 , ... }"
駆動表の id, some を使ってサブクエリを発行する場合次のようになる。
<result property="history" column="{value=id,second=some}" select="getHist"/>
これで、 getHist のSQL中で #value# と #second# が利用できる。
column="id"
という書き方は
column="{value=id}"
のショートカットという風に考えるとスッキリする