로그에 아래와 같은 에러메시지가 출력되고
2007-10-06 11:37:57,843 INFO [org.springframework.jdbc.support.SQLErrorCodesFactory] - <SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]>
2007. 10. 6 오전 11:37:57 org.apache.catalina.core.StandardWrapperValve invoke
심각: Servlet.service() for servlet test_spring threw exception
java.lang.IllegalArgumentException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ibatis.sqlmap.engine.accessplan.PropertyAccessPlan.setProperties(PropertyAccessPlan.java:46)
at com.ibatis.sqlmap.engine.exchange.JavaBeanDataExchange.setData(JavaBeanDataExchange.java:112)
at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.setResultObjectValues(BasicResultMap.java:373)
at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:64)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:382)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:301)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:190)
....
화면엔...
Error setting property 'setXXX' of 어쩌구 저쩌구 나오는 경우...의 대부분은
일종의 NullPointerException이다.
<resultMap ... 하위의
<property 에 nullValue를 처리해주지 않은 곳에 null이 들어갈 경우 발생한다.
<resultMap class="test.Member" id="memberResult" >
<result property="id" column="id" />
<result property="name" column="name"/>
<result property="age" column="age" nullValue="0"/>
테이블 컬럼에 not null이 아닌 항목은 위와 같이 nullValue처리를 꼭 해주어야 한다는 사실..