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 )
)
'Mybatis > 소스코드' 카테고리의 다른 글
Mybatis 을 이용한 foreach insert(반복 insert) (0) | 2016.05.17 |
---|---|
mybatis Mapper interface 방식사용시 두개의 datasource를 이용 (0) | 2016.04.27 |
iterate 와 같은 mybatis foreach (0) | 2016.04.27 |