티스토리 뷰

DEV/DB

ibatis remapResults

초록매실원액 2016. 10. 28. 11:42

ibatis 로 작업을 하다보면 동적 쿼리를 만들어야 할때가 있다


동적으로 조인 테이블을 만들거나,


동적으로 조회하는 필드명을 추가, 변경할때,


아래와 같이 태그들을 이용해서 구현할때가 있다



이땐 필히,


remapResults = "True" 를 기술해줘야 한다


안그러면 부적절한 열명입니다 오류가 발생할것입니다.



ibatis 기술 문서를 참고하자면,


 remapResults 속성은 <statement>, <select>, 그리고 <procedure> 에서 사용가능하다. 


이것은 선택적인 속성이고 디폴트는 false이다.


remapResults속성은 쿼리가 반환 칼럼의 다양한 세트를 가질때 true셋팅되어야만 한다. 다음 쿼리를 보자.


SELECT $fieldList$

FROM table

이전 예제에서 칼럼의 목록은 테이블이 언제나 같더라도 동적이다.

SELECT *

FROM $sometable$

이전 예제에서 테이블은 다를수 있다. 


Select절의 * 사용때문에, 결과적인 칼럼이름은 다를수 있다. 


동적 요소는 하나의 쿼리 수행에서 다음 수행까지 변경하기 위한 목록을 야기할수있다.


resultset메타데이타를 알고/판단하기 위한 오버헤드가 명백하지 않기 때문에, iBATIS는 마지막 쿼리 수행에 반환된 것만을 기억할것이다. 


이것은 위 예제와 비슷한 상황에서 문제를 발생시킨다.


만약 반환 칼럼이 변경된다면, remapResults를 true로 셋팅하라. 


그렇지 않다면 메타데이타 검색의 오버헤드를 제거하기 위해 remapResults를 false로 셋팅하라.



ibatis 한글 기술문서 : iBATIS_SqlMaps_2_ko.pdf


'DEV > DB' 카테고리의 다른 글

오라클 그룹내 중복 데이터 에서 하나의 데이터 뽑아내기  (0) 2017.07.03
index 리빌드  (0) 2015.11.26
PrepareStatment(#)와 Statment($)  (0) 2015.11.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함