티스토리 뷰
이슈
조회되는 테이블이 요청값에 따라 테이블을 동적으로 변경시켜야 한다.
문제발생
- iBatis는 SQL-ID가 한번 실행되면 내부적으로 읽어온 결과의 metadata를 저장한다.
- 다음번에 호출되었을 때 이미 캐쉬에 저장된 필드를 쿼리결과에서 찾는다.
- 쿼리대상 테이블이 변경되어 테이블의 필드명이 metadata의 필드명과 일치하지 않는다. (에러발생)
해결책
statement의 attribute로 "remapResults=true"를 설정하면 metadata를 캐쉬하지 않는다.
<select id="os.osex006.list.data" parameterClass="osex006svo" resultClass="HashMap" remapResults="true"> SELECT * FROM $tbl_nm$ WHERE SUBSTR (rcp_no, 0, 8) >= #fromdt# AND SUBSTR (rcp_no, 0, 8) <= #todt# </select>
댓글