[Mybatis] 마이바티스/아이바티스 부등호 사용하기

2021-12-11


Photo by Y S on Unsplash

마이바티스 또는 아이바티스에 부등호가 존재하는 쿼리를 옮겨 사용 시 오류가 발생하는 경우가 있다. 이는 부등호를 mapper에서 인식하는 과정에서 문제가 발생하는 것인데 이를 해결하는 방법을 알아보자.


- 비교 표현식

 

비교표현식이란, 부등호를 문자열로 표현한 것을 말하는데, 형식은 아래와 같다.

부등호 문자열 예제
> < select * from where age < 25
< &gt; select * from where age &gt; 25
<= &lte; select * from where age &lte; 25
>= &gte; select * from where age &gte; 25

 

위와 같은 방법을 사용할 수 있다. 다만 비교 표현식의 경우 가끔 시 tomcat server 빌드 중 오류가 발생하는 경우가 있다.

이럴 경우에는 다른 방법을 사용해야 한다. 아래의 예제를 보자.


- CDATA

 

CDATA 명시적으로 부등호를 감싸주면서 MAPPER 가 이를 인식하게 끔 해준다. CDATA 안에 부등호 조건 자체를 넣어주어도 되나, 부등호만 써주는 것이 조금 더 가독성이 좋다. 형식은 아래와 같이 사용하면 된다.

 

SELECT * FROM
WHERE AGE <![CDATA[<]]> 25

SELECT * FROM
WHERE AGE <![CDATA[>]]> 25

SELECT * FROM
WHERE AGE <![CDATA[>=]]> 25

SELECT * FROM
WHERE AGE <![CDATA[<=]]> 25

메인 이미지 출처 : Photo by Y S on Unsplash