eGovFrame 표준프레임워크 포털

메뉴 건너띄기
상단메뉴 바로가기
본문 바로가기

이 누리집은 대한민국 공식 전자정부 누리집입니다.

본문 영역

적용 지원, FAQ, Q&A 게시판을 통해 기술 문제 해결을 지원합니다.

묻고 답하기

iBaits에서 dynamic tag 사용시 typeHandler처리 관련 문의
  • 작성자

    전*성

  • 작성일

    2010-07-05 20:44:19

  • 조회수

    3,760

  • 구분

    실행환경

  • 진행상태

    완료

질문

사실 아래에 한번 적었는데 다시 적네요,

문제는 dynamic tag에서 typeHandler이 적용이 돼지 않는 것 입니다.

먼저 parameterMap에 typeHandler을 정의했습니다.
그 상태로 dynamic tag를 사용하서 쿼리를 생성해서 수행 했을 때 설정한 customTypeHandler가 처리 돼지 않는 것을 확인했구요 debugging한 결과 jdbcType과 javaType가 setting 안됀걸 확인 할 수 있었습니다. 어떤 분께서 inline parametermap를 사용하면 된다고 하셔서 inline으로 처리 해서 jdbcType과 javaType가 세팅된것을 확인할 수 있었습니다. 근데 jdbcType와 javaType가 setting되었음에도 불구하고, typeHandler을 처리하지 못하고 있습니다.

source trace한 결과, dynamicTag를 사용할 경우는 typeHandler을 구하지 못하도록 iBatis에서 처리 한 것으로 확인 돼었습니다.

https://issues.apache.org/jira/browse/IBATIS-568?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689607#action_12689607
이 자료 참고 하시면 될 것 같습니다.

InlineParameterMapParser.java입니다.

if (mapping.getTypeHandler() == null) {
TypeHandler handler;
if (parameterClass == null) {
handler = typeHandlerFactory.getUnkownTypeHandler();
} else {
handler = resolveTypeHandler(typeHandlerFactory, parameterClass, mapping.getPropertyName(), mapping.getJavaTypeName(), mapping.getJdbcTypeName());
}
mapping.setTypeHandler(handler);
}

이부분 입니다. typeHandler 를 구할려면 parameterClass가 null이 아닌 값이 넘어와야 하는데 dynamic tag(isPropertyAvailable, iterate, dynamic, ...)일 경우 내부적으로 null로 setting되는 것을 확인할 수 있었습니다. 이런 경우 어떻게 처리 해야 할까요?

답변

안녕하세요.. 전우성님..

해당 답변은 이전 질문에 답변을 드렸습니다.

요약해 드리면..
해당 issue는 아직 iBatis쪽에서 해결되지 않았기 때문에 .. inline 방식의 typeHandler는 사용하실 수 없을 것 같습니다.
따라서 parameterMap 이나 resultMap을 통해 typeHandler를 등록하여 사용하면 됩니다.

이렇게 답변을 드렸는데.. 굳이 inline 방식만을 적용하셔야 하는 이유는 없을 것 같습니다.

그럼.. 즐거운 하루 되십시오.
감사합니다.

이 페이지의 구성

묻고 답하기