mybaits錯誤解決:There is no getter for property named 'id' in class 'java.lang.String'


There is no getter for property named '*' in 'class Java.lang.String',此錯誤之所以出現,是因為mybatis在對parameterType="String"的sql語句做了限制,假如你使用<when test="username != null">這樣的條件判斷時,就會出現該錯誤

在使用mybaitis傳參數的時候,如果僅傳入一個類型為String的參數,那么在 xml文件中應該使用_parameter來代替參數名。

 

正確的寫法

<!-- 用於查詢運單號是否存在 -->  

  1. <span style="font-size:18px;">    <!-- 用於查詢運單號是否存在 -->  
  2.     <select id="isCargoBillNoExist" resultType="java.lang.Integer">  
  3.         select count(1)  
  4.         from t_entry_cargo_receiver_info  
  5.         where 1=1  
  6.         <if test="_parameter != null" >  
  7.         and cargo_bill_no = #{_parameter,jdbcType=VARCHAR}  
  8.         </if>  
  9.     </select></span>  

錯誤的寫法:

  1. <span style="font-size:18px;">    <!-- 用於查詢運單號是否存在 -->  
  2.     <select id="isCargoBillNoExist" resultType="java.lang.Integer">  
  3.         select count(1)  
  4.         from t_entry_cargo_receiver_info  
  5.         where 1=1  
  6.         <if test="id != null" >  
  7.         and cargo_bill_no = #{id,jdbcType=VARCHAR}  
  8.         </if>  
  9.     </select></span>  

 

也可以在mapper的接口中,給這個方法的參數加上@Param(value=“id”),這樣就能在.xml中使用#{id,jdbcType=VARCHAR} 了。

如:

 
  1. public Object getObjById(@Param("id)String id);  



 

這樣也是可以的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM