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