[iBatis] ResultMap 사용 시 “The error happened while setting a property on the result object.” Error 발생!
* error message
Caused by: org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];
— The error occurred in resource/sql/front/classroom/classroom.front.xml.
— The error occurred while applying a result map.
— Check the front.classroom.evalactStatusRm.
— The error happened while setting a property on the result object.
— Cause: net.sf.cglib.beans.BulkBeanException; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
— The error occurred in resource/sql/front/classroom/classroom.front.xml.
— The error occurred while applying a result map.
— Check the front.classroom.evalactStatusRm.
— The error happened while setting a property on the result object.
* cause
SQL Query와 ResultMap의 relation도 다 맞고 넘겨받은 파라메터로 수행한 쿼리도 문제가 없다! 그런데 이 에러가 날 경우가 있다.
이때에는 ResultMap 으로 받을 class 의 data type이 미스 매치 인 경우다!
예를들어 bean class에 private int foo; 라고 선언했고 쿼리에서 select foo… from xxx 라고 되 있는데 foo에 {NULL}이 select 되는 경우 int type에 매핑시킬 수가 없으므로 위와같은 에러가 난다.
* resolution
bean class의 data type을 String으로 하면 문제가 없다. 허나! 실제 data가 int인 경우엔 int로 쓰는게 더 편하겠지?! ㅋㅋ 그렇다면 데이터가 항상 int 값으로 매핑 할 수 있도록 쿼리의 결과를 보장해줘라! 예를들어 select NVL(foo, 0) as foo … from xxx 처럼 말이다!
출처 :
http://blog.naver.com/blackpet/100049375415
에러내용:
Servlet.service() for servlet article threw exception
org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];
이런 에러문구는 resultType 을 찾지 못하는 경우 발생한다.
예를 들면 ibatis sqlMap 설정에서 result 클래스명이 잘못 지정된 경우이거나
ibatis에서 정의한 resultMap 과 java 클래스간 내용이 일치하지 않을 때 발생한다.
일반적인 경우 vo작성시 getter/setter generater를 사용하여 만드는 경우에는 별일이 없지만
직접 작성 또는 수정후 재생성시 getter 또는 setter 메소드가 잘못 생성되었거나 중복되는 경우 위와 같은 에러가 발생한다.
특히 내부변수값을 변경하고자 하는 경우 자동생성시는 관련 setter/getter 메소드를 삭제후 구동하여야….ㅋ..
출처 : http://blog.naver.com/civan?Redirect=Log&logNo=150028875561
* result Type이 int와 같은 상수일경우 return값이 null이면 같은 에러