http://mybatis.github.io/mybatis-3/ko/dynamic-sql.html
동적쿼리 사용이 ibatis 와 mybatis 간에 차이가 있는 것 같다.
ibatis 는 iterate , mybatis 는 foreach (개인적으로는 foreach 구문에 한표.)
아래에 간단한 테스를 참조한다.
ex)
relayKeyList 파라미터는 List<List<Long>> 타입이다.
ibatis
SELECT
*
FROM
Test
WHERE
userno = 123
AND (
<iterate property="relayKeyList" conjunction=" OR ">
( no = CAST(#relayKeyList[].[0]# as numeric(20, 0)) AND no2 = CAST(#relayKeyList[].[1]# as numeric(20, 0)) )
</iterate>
)
foreach
SELECT
*
FROM
Test
WHERE
userno = 123
AND (
<foreach item="item" index="index" collection="relayKeyList" separator=" OR ">
( no = ${item[0]} AND no2 = ${item[1]} )
</foreach>
)
결과는
SELECT
*
FROM
Test
WHERE
userno = 123
AND (
( no = 11 AND no2 = 22 ) OR ( no = 33 AND no2 = 44 )
)
'emotional developer > detect-Java' 카테고리의 다른 글
mybatis Illegal overloaded getter method (0) | 2014.05.12 |
---|---|
spring retry 간단 예제. (0) | 2014.04.16 |
java 타입형 interface. (0) | 2014.02.24 |