mybatis 的两个报错
- apache.ibatis.binding.BindingException: Parameter ‘status’ not found. Available parameters are [eventId, param1]
- org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘status’ in ‘class java.lang.Integer’
这两种报错的可能原因:
-
多传参未处理
正确示范 (参数前面加上 @Param 注解)
@Delete("delete from user_event_relation where user_id = #{userId} and event_id = #{eventId}") int delete(@Param("userId") Integer userId,@Param("eventId") Integer eventId);
-
update的 set 中的一堆 if 删掉即可 (不清楚具体原因, 但似乎这样就不会再报错)
错误代码UPDATE event <set> <if test="null != status and '' != status">`status` = 0</if> </set> WHERE `name` = #{name}
可以正确运行的代码
UPDATE event <set> `status` = 0 </set> WHERE `name` = #{name}