로컬 윈도우 환경에서는 잘 돌아가는 녀석이, 서버(리눅스) 에만 올리면 "There is no result map named" 에러가 발생한다. 

구글신에게 물어봐도 답을 찾지 못했다. 결국 금요일 퇴근도 못하고 삽질 3시간 후 해결 .... ㅠㅠ

AAAA-sqlmap.xml

<sqlMap namespace="_AAAA">


    ....


    <resultMap id="myMapId" class="XXXX">

    ....

    </resultMap>


    ....


</sqlMap>

 
BBBB-sqlmap.xml

<sqlMap namespace="_BBBB">


    ....


    <select id="list" resultMap="_AAAA.myMapId" parameterClass="XXXX">

    ....

    </select>


    ....


</sqlMap>


이렇게 사용해야 될 경우에는 sqlmap 파일의 로딩순서에 유의해야 한다.

sqlmap-config.xml 파일에 수동으로 기능별 sqlmap 파일을 선언해 줄 경우에는 아래와 같이 AAAA-sqlmap.xml을 먼저 선언해줘야 한다.

<sqlMapConfig> 

    ....

    <settings enhancementEnabled="true" useStatementNamespaces="true"/> 

    <sqlMap resource="com/foo/AAAA-sqlmap.xml" /> 

    <sqlMap resource="com/foo/BBBB-sqlmap.xml" /> 

    ....

</sqlMapConfig> 



만약 스프링과 연동하여 sqlmap 파일을 자동으로 로딩해서 사용하고 있을 경우에는 아래와 같이 해주도록 한다.

<bean id="sqlMapClient"

    class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

    ....

    <property name="mappingLocations">

        <list>

            <value>classpath*:/com/foo/AAAA-sqlmap.xml</value>

            <value>classpath*:/com/foo/BBBB-sqlmap.xml</value>

            <value>classpath*:/com/others/**/*-sqlmap.xml</value>

        </list>

    </property>

    ....

</bean>




+ Recent posts