ReflectionException: There is no getter for property named

在使用 Mybatis 时发生了一个 org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'ids' in 'class java.lang.String' 的异常

案例如下:

 Mapper.java 文件代码:

1     /**
2      * 根据id值,删除用户
3      * @param ids 用户id,可以是多个
4      * @return  删除成功返回删除的数据库记录数量
5      */
6     Integer deleteUsers(String ids);

 Mapper.xml 文件代码:

1     <!-- 删除多个用户 -->
2     <delete id="deleteUsers" parameterType="java.lang.String">
3         UPDATE
4             user
5         SET
6             del_flag = 1
7         WHERE
8             user_id in (${ids})
9     </delete>

解决办法:

1.在 Mapper.java 文件的抽象方法参数上添加 @Param("ids") 注解

2.在 Mapper.xml 文件中删除 parameterType 属性

3.在 Mapper.xml 文件中注入值时使用 param0 

4. Mapper.xml 文件中使用 foreach 标签

 1      <!-- 删除多个用户 -->
 2      <delete id="deleteUsers" parameterType="java.lang.String">
 3          UPDATE
 4              user
 5          SET
 6              del_flag = 1
 7          WHERE
 8              user_id in 
 9                 <foreach item="item" collection="list" index="index" open="(" close=")" separator=",">
10                     #{item}
11                 </foreach>
12      </delete>
原文地址:https://www.cnblogs.com/xiao-lin-unit/p/13753910.html