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;
}
}
댓글 없음:
댓글 쓰기