zoukankan      html  css  js  c++  java
  • 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属性

     
  • 相关阅读:
    GO学习-(31) Go语言操作Elasticsearch
    GO学习-(30) Go语言操作kafka
    GO学习-(29) Go语言操作etcd
    Maven+Spring打Jar包
    话说Session
    Apache Server与多个独立Tomcat集成
    一套Tomcat处理多个域名请求
    Tomcat多实例
    Linux下安装MySQL
    Java Enum
  • 原文地址:https://www.cnblogs.com/sishang/p/6555176.html
Copyright © 2011-2022 走看看