• Mybatis笔记四:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'


    错误异常:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'

    映射器类(Mapper interface)

    public interface NarCodeService {
        
        public NarCode getNarCode(String id);
    
    }

    Xml映射文件配置(部分)

    <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'

     解决办法有两种:

    1.去掉sql语句的if标签限制

    <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属性

     
  • 相关阅读:
    JVM调优2
    CAP理论/AP架构/CP架构
    JDK8 JVM性能优化-1
    string+和stringbuffer的速度比较
    @SpringBootApplication注解分析
    Spring Cloud底层原理
    Window 下安装 redis
    Spring的任务调度@Scheduled注解——task:scheduler和task:executor的解析
    多线程捕获线程中的异常
    将 HTML 页面内容转换为图片或PDF文件
  • 原文地址:https://www.cnblogs.com/sishang/p/6555176.html
Copyright © 2020-2023  润新知