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

     
  • 相关阅读:
    二叉树
    消息
    线性表 及Java实现 顺序表、链表、栈、队列
    Memcache简介
    redis例子
    redis简介
    Android客户端采用Http 协议Post方式请求与服务端进行数据交互(转)
    jQueryValidate实现重复性验证
    mybatis中${}和#{}的区别
    List转换为数组Array的方法
  • 原文地址:https://www.cnblogs.com/sishang/p/6555176.html
Copyright © 2011-2022 走看看