如何解决there is no getter for property named where' in class 'java.lang.String'报错

今天在做项目持久层测试的时候突然爆出了如下的错there is no getter for property named where' in class 'java.lang.String',在网上找了一篇文章,解决该报错,记录一下:

1.我们使用#{xxx}引入参数.会抛异常There is no getter for property named 'XXX' in 'class java.lang.String'

<select id="getBookingCount" resultType="int" parameterType="string">

select count(*) from TB_EMPC_BOOKING_ORDER T

where (t.state = '1' or t.state = '2')

and t.appointmenttime = #{state}

</select>

2.解决方法一:把#{xxx}修改为 #{_parameter} 即可

<select id="getBookingCount" resultType="int" parameterType="string">

select count(*) from TB_EMPC_BOOKING_ORDER T

where (t.state = '1' or t.state = '2')

and t.appointmenttime = #{_parameter}

</select>

3.解决方法二:可以在方法中提前定义:

public int  methodName(@Param(value="state") String state ){

  ...

}

4.原因:Mybatis默认采用OGNL解析参数,所以会自动采用对象树的

我采用的方法是方法二@Param("state"),其他方法还没有试,有时间可以试一下。

 

posted @ 2021-02-11 00:24  小李的博客  阅读(6618)  评论(0编辑  收藏  举报