There is no getter for property named 'id' in 'class java.lang.Integer
问题描述:
使用mybatis传入参数, 当参数类型是String ,Integer 等这些时。如果用他的 <if test="id != null and id != ''">
标签判断该参数是否为空,通常会爆There is no getter for property named ‘id’ in ‘class java.lang.Integer异常。
解决思路:
- 在接口中该方法的参数前加上@Param(“参数名”)注解。
例如:List<String> query(@Param(value="id") Integer id);
- 我百度的时候,发现还有人这样解决,不知是否可行,一并摘录下来:
在 xml文件中应该使用_parameter来代替参数名。
例如:
<select id="query" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from t_user
where 1=1
<if test="_parameter!= null" >
and id = #{_parameter}
</if>
</select>
总结:
其实这个问题并不是很大,但是容易一不小心就误犯;所以一定要小心谨慎。