기존에 H2 를 사용하던 프로젝트의 Database를 Mysql로 변경하려고 하는데 검색이 되지 않는 문제가 발생했다.
H2는 문법적으로 ORACLE과 유사한 점이 많지만 Mysql과는 호환되지 않는 부분이 꽤 많다.
결과적으로 문법의 차이 때문에 발생한 일이다.
H2와 ORACLE은 동적쿼리문을 아래와 같이 사용한다.
SELECT * FROM TABLE_NAME WHERE 1 = 1
<if test="searchCondition == 'CONDITION_NAME'">
AND CONDITION_NAME LIKE '%'||#{searchKeyword}||'%'
</if>
반면 Mysql은 CONCAT 문을 사용한다.
SELECT * FROM BOARD_NAME WHERE 1 = 1
<if test="searchCondition == 'CONDITION_NAME'">
AND CONDITION_NAME LIKE CONCAT('%', #{searchKeyword}, '%')
</if>
아래와 같이 수정한 후 동작시켜보니 모든 기능이 정상적으로 잘 작동하는 것을 확인했다.
'JAVA' 카테고리의 다른 글
오류 : 게시판 내용에 공백이 추가되는 오류 (0) | 2021.06.02 |
---|---|
오류 : MySql에서 NVL 사용 (0) | 2021.05.31 |
오류 : 이클립스 web.xml (A field of identity constraint 'web-app-servlet-name-uniqueness' matched element 'web-app', but this element does not have a simple type.) - 해결 방법 (0) | 2021.04.25 |
오류 : 이클립스 기본 클래스 을(를) 찾거나 로드할 수 없습니다 - 해결 방법 (1) | 2021.04.19 |