dao层接口为:
List<Menu> listMenueByIdAndLevel(@Param("ids") List<Integer> ids,@Param("level") Integer level);
//Mapper.xml中collection="ids"有时会失效
//解决办法
ServiceImpl业务层
//将参数封装
Map params=new HashMap();
params.put("xxx",xxx);
params.put("xxx",xxx);
params.put("xxx",xxx);
//调Dao方法 问题解决
listMenueByIdAndLevel(params)
dao层接口改为:
List<Menu> listMenueByIdAndLevel(Map params);
对应xml:</select>
<select id="listMenueByIdAndLevel" resultMap="BaseResultMap">
SELECT *
FROM menu
WHERE menu_Id IN
<foreach collection="ids" open="(" close=")" separator="," item="id">
#{id}
</foreach>
AND menu_Level = #{level}
</select>
本文介绍了一种在MyBatis中处理集合参数失效的情况,通过将参数封装为Map并在Mapper中使用,解决了listMenueByIdAndLevel方法调用时的问题。详细解释了如何修改DAO层接口和XML映射文件,以确保正确处理集合参数。

1512

被折叠的 条评论
为什么被折叠?



