我有代码如下
@Update(''' UPDATE `book_sale` SET `status`= #{status} WHERE id IN
<foreach collection="idList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
''')
int updateStatusByIdList(@Param("idList") List<Long> idList, @Param("status") SaleStatus status)
跑起来后,发现如下错误,很奇怪
2019-11-26 21:30:27.248 [http-nio-6081-exec-2] DEBUG a.a.p.m.R.updateStatusByIdList - ==> Preparing: UPDATE `book_sale` SET `status`= ? WHERE id IN <foreach collection="idList" open="(" close=")" separator="," item="item"> ? </foreach>
2019-11-26 21:30:27.253 [http-nio-6081-exec-2] ERROR a.a.p.service.impl.SaleService - [SaleService.updateStatus]: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'item' not found. Available parameters are [idList, param1, status, param2]
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'item' not found. Available parameters are [idList, param1, status, param2]
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy97.update(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:294)`
检查多遍,写的应该没问题,怎么回事啊?
https://stackoverflow.com/que...
可以查看一下这个回答