今天做模糊查询时发生了这错误,百思不得起解,最后度出来了,原来在输入值类型设置为String时,在做判断的时候参数需统一修改为‘_parameter’
否则就会发生“There is no getter for property named in ‘class java.lang.String’”错误
<select id="selectmohuSatisfaction" resultMap="satisfactionMap" parameterType="java.lang.String">
select manyidu_id,js.jiaoshi_name,bj.banji_name,kc.kecheng_name ,manyidu_fenshu,manyidu_riqi from manyidu m
inner join jiaoshi js on m.jiaoshi_id=js.jiaoshi_id
inner join banji bj on m.banji_id=bj.banji_id
inner join kecheng kc on m.kecheng_id=kc.kecheng_id
<where>
<if test="mohuname!=null">
and jiaoshi_name like '%' #{mohuname} '%'
or banji_name like '%' #{mohuname} '%'
or kecheng_name like '%' #{mohuname} '%'
</if>
</where>
</select>
上面的就是我发生错误的地方,在<if test="mohuname!=null">
判断的时候改为`就好了
注意只有判断的语句才必须使用_parameter,在
and jiaoshi_name like '%' #{mohuname} '%'
中就没有用_parameter,也没有报错。
or banji_name like '%' #{mohuname} '%'
or kecheng_name like '%' #{mohuname} '%'
后来我尝试将#{mohuname} 改为#{_parameter} 也可以运行
`