Trouble Shooting/MyBatis

오류 내용 Mybatis에서 #{} 문법으로 파라미터 바인딩 된 곳에 주석 처리를 하면 아래와 같이 오류가 발생한다. java.sql.SQLSyntaxErrorException: (conn=554682) Could not set parameter at position 원인 및 해결방안 mybatis에서는 #{ } 이 있는 곳을 -- 주석이나 또는 /* */ 주석으로 감싸면, 주석 내에 있는 코드여도 파라미터를 지정하는 대상으로 판단한다. 그래서 #{} 코드를 주석처리하려면 을 사용해야한다. : 사용 가능 /* #{} */ : 오류 -- #{} : 오류
이슈사항 Mybatis의 xml 매퍼에서 choose문을 사용해 데이터를 가져오는 중 아래와 같은 에러가 발생했다. Error querying database. Cause: java.lang.NumberFormatException: For input string: \"M\"\r\n 해결 오류가 발생한 쿼리 when 절에 " 비교대상 =='값' " 이런식으로 큰 따옴표 안에 작은따옴표로 값을 비교했다. 그런데 이 방식으로 하면 비교가 안되기 때문에, 아래 같은 방식을 사용해야한다. 1. ' 비교대상 == "값" ' 이런식으로 작은 따옴표로 감싸고 큰따옴표로 값을 감싸서 비교 2. ' 비교대상.equals("값") ' 이런 기능을 통해 비교
이슈 내용 쿼리 내에 Mybatis 동적 쿼리 if문을 사용해서 파라미터의 빈값 여부를 체크하는 부분에서, int형 파라미터에 대해 0을 null로 인식하는 문제가 발생했다. 원인 및 해결 방법 마이바티스 내에서 값이 0인 int형 파라미터은 공백("") 과 같다고 판단한다. 그래서 마이바티스 IF문에서 공백 체크 할 때 int형의 파라미터를 체크해야 하는 경우, 아래의 코드와 같이 equals문을 사용하도록 수정해야 한다.
이슈내용 group_concat을 사용해서 결과값을 리스트로 조회해오는 mybatis 쿼리에서 아래와 같은 에러가 발생했다. java.lang.UnsupportedOperationException 원인 해당 오류는 mapper 인터페이스의 리턴 타입과 xml의 구현체의 resultType이 일치하지 않아서 발생한 오류로, Mapper 인터페이스에는 아래와 같이 List 형태로 받게 지정해놨는데, xml의 쿼리 resultType으로 String 타입이 아닌 list라고 지정한 것이 원인이었다. mybatis에서 리턴값을 List로 받기 위해서는 resultType에는 기본형타입만 지정하고, mapper 인터페이스 부분에 리턴값으로 List 형태를 지정해야 한다! ✅ Mapper ✅ XML 해결방안 아래와..
jonghne
'Trouble Shooting/MyBatis' 카테고리의 글 목록