티스토리 뷰

제목은 이렇게 지었지만 사용법은 여기에 잘 나와있고 검색하면 팍팍 나오기 때문에 패스!

매퍼에서의 foreach는 보통 WHERE ... IN ... 구문과 많이 쓰이는 듯 싶다.

오늘 하루 삽질했던 내용을 기록해야겠다.


1
2
3
4
5
6
7
8
9
10
11
SELECT
    ITEM_NO, ITEM_NM
FROM
    PRODUCT
WHERE 1=1    
<if marketList != '' || marketList != null>
    AND MARKET IN
    <foreach collection="marketList" item="item" open="(" close=")" separator=",">
        #{item.value}
    </foreach>
</if>
cs

XML에서 대충 이렇게 작성해놓고 돌렸는데 자꾸 실행이 안된다.

XML은 디버깅도 어떻게 하는지 몰라서 의심가는 곳에서 부분 부분 지워가면서 돌려본 결과!

if문 부터 안들어갔다...


일반 VO와 같이 빈칸 체크 or 널 값 체크를 해서 if문 인식을 못했던 것!



1
2
3
4
5
6
7
8
9
10
11
SELECT
    ITEM_NO, ITEM_NM
FROM
    PRODUCT
WHERE 1=1    
<if marketList.size != 0>
    AND MARKET IN
    <foreach collection="marketList" item="item" open="(" close=")" separator=",">
        #{item.value}
    </foreach>
</if>
cs

이렇게 리스트의 길이로 리스트 유무를 체크해주면 끝!

'Spring' 카테고리의 다른 글

@Transactional, 스프링 트랜잭션  (0) 2019.01.17
@Scheduled, 스프링 스케줄러  (0) 2019.01.17
<include refid = ... > - 반복되는 쿼리 처리  (0) 2018.10.31
<![CDATA[ ... - XML  (0) 2018.10.31
Getter, Setter with Lombok(롬복)  (0) 2018.10.22
댓글