mybatis foreach @Param("*")

首先关于mybatis的foreach语句可以参考

http://mybatis.org/mybatis-3/zh/dynamic-sql.html

遇到了如下的DAO:

public interface CompanyReadDao {

List getCompanies(@Param("codes")List codes);

}

对应的xml文件应该配置成:

<select id="getCompanies"  resultMap="companyResult">

select * from company c where c.code in

 <foreach collection="codes" item="item" index="index"

            open="(" close=")"  separator=",">

            #{item}

        foreach>

select>


注意红色部分

mybaits会把list或者数组转成map,其中的key默认是list,但是如果你在dao中注解了@Param("name"),那么mybatis就会把key设置为"name",而不是list。

也就是如果DAO如下:

public interface CompanyReadDao {

List getCompanies(List codes);

}

对应的xml文件应该配置成:

<select id="getCompanies"  resultMap="companyResult">

select * from company c where c.code in

 <foreach collection="list" item="item" index="index"

            open="(" close=")"  separator=",">

            #{item}

        foreach>

select>



你可能感兴趣的:(mybatis)