Mybatis單個引數的if判斷(針對異常:There is no getter for property..)------mybatis的內建物件
阿新 • • 發佈:2021-10-08
這裡有一個刪除方法:
int deleteByPrimaryKey(Integer id);
然後對應的sql的xml如下:
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" > delete from tablename where id = #{id,jdbcType=INTEGER} </delete>
以上是單個引數一般的寫法。
但是如果我下面的同樣也是單個引數,但是且報錯了:There is no getter for property..!!
DAO:
List<Article> recommandList( Integer siteid);
XML:
<select id="recommandList" resultMap="BaseResultMap"> SELECT a.* from article a where a.id in (SELECT atr.article_id from article_tags_relation atr where isdelete =0) <if test="siteid !=0"> and a.article_type_id = #{siteid,jdbcType=INTEGER} </if> ORDER BY a.publish_time desc </select>
為什麼呢?因為if裡面用了mybatis的內建物件,例如這裡:“
<if test="siteid !=0">
”
為了解決這個問題,程式碼修改:
DAO:
List<Article> recommandList(@Param("siteid") Integer siteid);TRANSLATE with x English TRANSLATE with EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back
如上修改,給siteid @Param注入getter 即可。