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>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM