ibatis.binding.BindingException: Parameter 'ids' not found. Available parameters

1,330 阅读1分钟

异常:

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.SqlSessionTemplateSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446) at com.sun.proxy.Proxy114.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>
		
···