[error] mybatis 파라미터 값 동적쿼리 if문에서 null 체크 안될 때
<if test="fc.sType != null"> AND P.BUSINESS_TYPE IN (#{ fc.sType }) </if> if test="fc.sFaci != null"> AND L.FACILITY_NAME IN (#{ fc.sFaci }) </if> <if test="fc.sFloor != null"> AND R.ROOM_FLOOR IN (#{ fc.sFloor }) </if>
조건 검색으로 리스트를 조회해오는 동적 쿼리문을 짰다.
파라미터 값이 null이 아니면 AND 쿼리를 수행하려고 했는데 잘 안 돼서
AND와 OR와 괄호의 문제인줄 알고 계속 수정했는데 정상적으로 조회가 되지 않았다.
저 if문 쿼리만 빼고 조회하면 너무 잘 되는 것이... if문 동작에 뭔가 문제가 있겠다 싶어서
다시 한번 mybatis if문에서 null 체크와 문자열 비교하는 방법을 찾아보다가...
내가 controller에서 파라미터 받아올 때 null이면 "null"을 기본값으로 설정해준 것이 떠올랐다.
(@RequestParam (value="type", required=false, defaultValue="null") List typeArr 이라고 설정한것)
null 또는 공백이 아닌 문자열 그대로 "null"이 들어가 있던 것이다...ㅠ_ㅠ
너무 바보같고 허무했지만 찾아서 수정하고 정상적으로 조회될 때의 후련함은..... 👍👍👍
<if test="fc.sType != 'null'"> AND P.BUSINESS_TYPE IN (#{ fc.sType }) </if> if test="fc.sFaci != 'null'"> AND L.FACILITY_NAME IN (#{ fc.sFaci }) </if> <if test="fc.sFloor != 'null'"> AND R.ROOM_FLOOR IN (#{ fc.sFloor }) </if>
ㄴ> 해결 : null에 따옴표 추가
참고로 마이바티스 if문 문자열처리 이것저것 시도해보는데 도움이 많이 되었던 블로그👇👇👇
Author And Source
이 문제에 관하여([error] mybatis 파라미터 값 동적쿼리 if문에서 null 체크 안될 때), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dooroojoo/error-mybatis-파라미터-값-동적쿼리-if문에서-null-체크-안될-때저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)