[컴][웹] MyBatis foreach, custom class 의 list 를 parameter 로 사용하기

foreach with custom class list / foreach and custom class


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;
    }
}



References


  1. foreach : http://mybatis.github.io/mybatis-3/dynamic-sql.html

댓글 없음:

댓글 쓰기