iBatis 3.0 이상부터는 iterate 가 안되는 듯 하다.(불확실) 여튼 그래서 iterate 로 되어 있던 녀석을 foreach 로 옮기는데, 문법을 잘 몰라서 헤맸다. ㅜ.ㅜ
ref.1 에 기본class 에 대한 List 에 대한 foreach 예제가 나와있다. 그런데 이 방법은 custom class 에 대한 List 처리를 어떻게 하는 지 알 수 없다. 이 것 때문에 헤매었어서 방법을 적어 놓는다.
결론은 parameterType 을 같이 적어주면 된다.
사용 예
param 으로 List<TrafficParam> type 을 넘겨줄 때 foreach 사용방법
<select id="getUrlAndName" resultType="com.web.portal.model.mysql.Traffic" parameterType="com.web.portal.model.mysql.TrafficParam"> <foreach collection="list" index="index" item="item" separator="union all"> SELECT a.customer_id AS CUSTOMER_ID FROM t_cdn_domain_info a WHERE a.customer_id = #{item.CUSTOMER_ID} GROUP BY a.customer_id </foreach> </select>
// TrafficParam.java public class TrafficParam implements Serializable { /** * serialVersionUID is generated by eclipse */ private static final long serialVersionUID = -7395873000880933701L; private int CUSTOMER_ID; public int getCUSTOMER_ID() { return CUSTOMER_ID; } public void setCUSTOMER_ID(int cUSTOMER_ID) { CUSTOMER_ID = cUSTOMER_ID; } }
댓글 없음:
댓글 쓰기