运行ssm项目报错:
HTTP Status 500 - Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'ps_state' in 'class java.lang.Integer'
经过排查发现:当传入数据只有一个时mybatis中<where><if></if></where判断会出现There is no getter for property
原来service接口:
//获取车位总数
int selectCount(Integer ps_state);
mapper.xml
<!-- 车位总数 -->
<select id="selectCount" resultType="java.lang.Integer"
parameterType="java.lang.Integer">
select count(1)
from t_space
<where>
<if test="ps_state !=null and ps_state !='' ">AND ps_state = #{ps_state}</if>
</where>
</select>
因为只传来一个值,所以才报错。
解决方法:用"_parameter"代替当前参数
<!-- 车位总数 -->
<select id="selectCount" resultType="java.lang.Integer"
parameterType="java.lang.Integer">
select count(1)
from t_space
<where>
<if test="_parameter !=null and _parameter !='' ">AND ps_state = #{_parameter}</if>
</where>
</select>
再运行项目,没有报错,问题解决了。
我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。