본문 바로가기

개발/04.Mybatis

[Mybatis] 쿼리 영역 주석처리시 파라미터 포함하여 주석하면 오류나는 현상 관련 해결법

배경 : 쿼리 개발중, union all 로 조회하는 영역중 일부를 제거하고 조회해보려고하는데, DBMS 툴에서는 정상 조회되나, 시스템에서는 먹히지 않는 현상 발생으로 당황함

 

내용 : 

Mybatis에서 동적쿼리 #{param} 가 사용된 곳에 주석 처리를 하면 아래와 같이 오류가 발생한다.

java.sql.SQLSyntaxErrorException: (conn=554682) Could not set parameter at position

mybatis에서는 -- 주석이나 또는 /* */ 주석안에 #{파라미터} 를 감싸게 되면
주석 내에 있는 코드여도 파라미터를 지정하는 대상으로 판단한다고 한다.

그래서 #{} 코드를 주석처리하려면 아래와 같이 사용해야 한다.

<!-- #{} --> : 사용 가능
/* #{} */ : 오류
-- #{}  : 오류

 

 

 

 

참고 : https://velog.io/@jonghne/Mybatis-%EC%A3%BC%EC%84%9D%EC%9C%BC%EB%A1%9C-%EC%9D%B8%ED%95%9C-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0-%EC%84%B8%ED%8C%85-%EC%98%A4%EB%A5%98

 

[Mybatis] 주석으로 인한 파라미터 세팅 오류

Mybatis에서 동적쿼리 mybatis에서는 -- 주석이나 또는 /\* \*/ 주석안에 주석 내에 있는 코드여도 파라미터를 지정하는 대상으로 판단한다고 한다. 그래서 \`\`\` text

velog.io

 

728x90