错误异常:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'java
映射器类(Mapper interface)sql
public interface NarCodeService { public NarCode getNarCode(String id); }
Xml映射文件配置(部分)apache
<select id="getNarCode" parameterType="java.lang.String" resultType="narCode"> select <include refid="Base_Column_List"></include> from nar_code <where> <if test="id != null"> id=#{id,jdbcType=VARCHAR} </if> </where> </select>
这是Mybatis Xml映射文件配置,当我执行这个映射select语句时报错:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'app
解决办法有两种:spa
1.去掉sql语句的if标签限制code
<if test="id != null"> id=#{id,jdbcType=VARCHAR} </if>
改成:
id=#{id,jdbcType=VARCHAR}
缘由:我本身猜想加上if标签时,id属性没有包含在数据类型为String id对象中。
若是去掉if标签时直接使用这个数据类型为String id对象2.将parameterType="java.lang.String"参数改成传一个自定义实体对象或者HashMap来封装这个id参数缘由:能够在自定义实体对象或者HashMap中找到这个id属性