기존 iBatis를 사용하는 전자정부프레임워크를 myBatis로 컨버팅중에 나온 오류.


returnType="egovMap" 로 선언된 부분에서 Data가 있음에도 불구하고 리턴되지 않아 한참을 고생.


<typeAlias  alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>


<select id="BBSManageDAO.selectList" returnType="egovMap">

...

</select>


iBatis에서는 정상으로 작동하지만 myBatis에서는 정상작동하지 않습니다.

원인은 myBatis에 추가되는 option설정때문인데요....(iBatis에서는 이 설정이 없는듯 합니다.)


sqlMapConfig.xml 에 다음과 같이 추가합니다.

<configuration>

    <typealias .../>


    <settings>

        <setting name="mapUnderscoreToCamelCase" value="true"/> <== default는 false 임

<setting name="jdbcTypeForNull" value="NULL"/> <== NULL 처리를 위해 NVL, IFNULL 등을 하지 않아도 됨

    </settings>


</configuration>


myBatis에는 의외로 많은 설정들이 존재합니다.  

바꿔말하면 아래의 다양한 옵션들을 환경하에서 개발하다가 Default로 설정된 환경에서 변경할 경우 이전에 잘 돌아가던 코드가 제대로 작동을 하지 않는 경우가 발생할텐데, 이러한 설정의 차이를 인지하지 못할 경우 낭패(엄청난 삽질)를 당할수 있다는 것입니다. 

꼼꼼히 보고 체크해야 할듯 합니다.


아래는 링크는 mybatis공식페이지에 정의된 매퍼설정내용들입니다.


http://www.mybatis.org/mybatis-3/ko/configuration.html

.