异常:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'ids' not found. Available parameters are [arg1, arg0, param1, param2] at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77) at org.mybatis.spring.SqlSessionTemplateProxy114.update(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:294) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63) at
原因:
ibatis有多个映射参数时,必须指定参数映射.
解决:
可以按如下方式添加注解来指定:
/**
* 批量更新状态
*/
public int batchUpdateDirty(@Param("ids") List<Long> ids, @Param("dirty") int dirty);
对应xml配置文件里如下:
<update id="batchUpdateDirty">
update product_config set dirty = #{dirty}
<where> id in
<foreach collection="ids" item="item" index="index"
open="(" separator="," close=")">#{item}
</foreach>
</where>
</update>
···