ibatis 에서 resultMap 형식으로 값을 vo에 담아 return 할 시, 간혹 값이 넘어 오지 않는 경우가 있다.
이 경우에는 resultMap property 값과 select 하고자 한 column 값과 정확히 일치 해주어야 return 이 가능해진다
무슨 말이냐.. 하면 예를 들어보자.
<resultMap id="BoardListResult" class="boardVo">
<result property="num" column="num" columnIndex="1" />
<result property="author" column="author" columnIndex="2" />
<result property="title" column="title" columnIndex="3" />
<result property="content" column="content" columnIndex="4" />
<result property="writeday" column="writeday" columnIndex="5" />
<result property="readcnt" column="readcnt" columnIndex="6" />
<result property="repRoot" column="rep_root" columnIndex="7" /><!--이부분을 삭제-->
<result property="repIndent" column="rep_indent" columnIndex="8" /><!--당연히 columnIndex 값을 7 로 변경-->
</resultMap>
<select id="list" resultMap="BoardListResult" parameterClass="boardVo">
<![CDATA[
SELECT
num
, author
, title
, content
, writeday
, readcnt
, rep_indent
FROM(
SELECT
... 중략
</select>
위와 같이 했을 때 값을 return 해 올 수 없다. 그 이유는 select 한 값은 rep_indent 까지 딱 7개의 column을 들고 오는데 반해 resultMap은 repRoot라는 property 값이 선언 되어 있다.
이럴 때 select 할 때 rep_root를 찾던가, 아니면 resultMap에 선언 되어 있는 repRoot result 태그를 삭제 해주면 잘 return 하는 것을 볼 수 있다.
'Database > MyBatis' 카테고리의 다른 글
[Procedure] ibatis 호출 (0) | 2015.02.12 |
---|---|
[Spring] Repository sqlMapClientTemplate 맵핑 (0) | 2014.08.03 |
org.springframework.dao.DataAccessResourceFailureException / RecoverableDataAccessException (0) | 2014.03.25 |
[iBatis] Multi Insert 시 List 형태와 Map 형태 (0) | 2014.02.24 |
[iBatis] resultMap, resultClass, parameterClass 에 관한 고찰 (0) | 2013.02.19 |