[ibatis] µ¿ÀûÄõ¸® »ý¼º ¹× outOfBoundsException ¿¡·¯
µ¿ÀûÄõ¸®¸¦ »ý¼ºÇØ¾ß ÇÏ´Â °æ¿ì´Â »ó´çÈ÷ ¸¹´Ù.
À̹ø¿¡ ibatis¸¦ óÀ½ »ç¿ëÇÏ¸é¼ ÆíÇϱä ÇÏÁö¸¸ ¾Ë¾Æ¾ß ÇҰ͵µ Âü ¸¹´Ù°í »ý°¢ÀÌ µå´Âµ¥
¾Æ¹«Æ° ibatis¿¡¼ ¸®½ºÆ®¸¦ ¹Þ¾Æ¿Í Äõ¸®¹®¿¡ foreach¹® °°Àº ¹Ýº¹¹®À» »ý¼ºÇϵµ·Ï ÇÏ·Á¸é
iterate¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
»ç¿ë¹ýÀº
<iterate property="measureTypeList" open="(" close=")" conjunction="or">
<![CDATA[ TYPE_ID =#measureTypeList[]#]]>
</iterate>
ÀÌ·±½ÄÀ¸·Î »ç¿ëÀÌ °¡´É ÇÏ´Ù.
property´Â ¹Þ¾Æ¿À´Â ¸®½ºÆ®ÀÇ À̸§
open´Â ¹Ýº¹¹®ÀÌ ½ÃÀÛÇÒ¶§ µé¾î°¡´Â ÅؽºÆ®
close´Â ±× ¹Ý´ë
Áï Àú·¸°Ô µ¹¸®¸é
(TYPE_ID =#measureTypeList[]# or TYPE_ID =#measureTypeList[]# or TYPE_ID =#measureTypeList[]#)
ÀÌ·±½ÄÀ¸·Î µ¹¾Æ°£´Ù conjunctionÀº ¹Ýº¹ÇÒ¶§¸¶´Ù µé¾î°¥ ÅؽºÆ®ÀÌ´Ù
±×·±µ¥ Àú·¸°Ô »ç¿ëÀ» ÇÒ¶§
outOfBoundsException ¿¡·¯°¡ ³ª´Â °æ¿ì°¡ ÀÖ´Ù!!!
ÄÁÆ®·Ñ·¯¿¡¼ º¸³»´Â parameterClass¸¦ ¸®½ºÆ®·Î ¸¸µé¾î¼ º¸³Â´Âµ¥! ¿Ö!!! ¿Ö ¾ÈµÅ´Â°É±î!
ArrayList<String> measureTypeList = new ArrayList<String>();
measureTypeList.add("MEASURE_TYP_117");
measureTypeList.add("MEASURE_TYP_118");
ÄÁÆ®·Ñ·¯¿¡¼ Àú·±½ÄÀ¸·Î ¸¸µé¾î¼ ¹Ù·Î ÆĶó¸ÞÅÍ·Î º¸³»¹ö·ÈÀ»¶§ ¹ß»ýÇÏ´Â ¿¡·¯ ÀÌ´Ù
À§ÀÇ ¿¡·¯¸¦ ÇØ°áÇϱâ À§Çؼ´Â
¸¸µé¾î ³õÀº ¸®½ºÆ®¸¦ hash¸Ê¿¡ ´ã¾Æ¼ º¸³»¾ß ÇÑ´Ù
HashMap measureTypeListMap = new HashMap();
measureTypeListMap.put("measureTypeList", measureTypeList);
ÀÌ·±½ÄÀ¸·Î Çؽ¬¸Ê¿¡ ´ã¾Æ¼ º¸³»¸é ¿¡·¯°¡ ÇØ°áÀÌ µÈ´Ù.
<select id="WidgetTagDAO.measureTypeList" parameterClass="HashMap" resultMap="widgetTag">
<![CDATA[
SELECT*
FROM
where
]]>
<iterate property="measureTypeList" open="(" close=")" conjunction="or">
<![CDATA[ TYPE_ID =#measureTypeList[]#]]>
</iterate>
</select>
XML¿¡¼ ÀÛ¼ºÇϸé À§¿Í °°ÀÌ ÀÛ¼ºÀ» ÇÏ¸é µÈ´Ù.
Ãâó: http://yamea-guide.tistory.com/category/Yame Programmer/ÀüÀÚÁ¤ºÎÇÁ·¹ÀÓ¿öÅ©?page=2 [±âŸġ´Â °³¹ßÀÚÀÇ ¾ß¸Å °¡À̵å]