iBATIS 2.3.0.677
ソートする場合にORDER BYを動的に変更したいんだけど。
と思って、ソートキーをリストで渡せないか、ゴニョゴニョ試してみた。
<select id="test" parameterClass="java.util.HashMap" resultMap="resultMap"> SELECT id , name FROM tbl_test <dynamic prepend="ORDER BY "> <iterate property="sortKeyList" conjunction=","> <isEqual property="sortKeyList[]" compareValue="id">id</isEqual> <isEqual property="sortKeyList[]" compareValue="name">name</isEqual> </iterate> </dynamic> </select>
パラメータのMapに、sortKeyListというプロパティで、Listに文字列を"name","id"と入れておくと、
SELECT id, name FROM tbl_test ORDER BY name, id
ってなSQLになってくれる。
ListにBeanを入れるんなら、property="sortKeyList[].hogehoge"みたいな感じでええんかな?