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

     
  • 相关阅读:
    HDU 4814
    POJ 3415
    HDU 4941
    C scanf()
    hdu 4850 Wow! Such String!
    HDU 4828 Grids
    HDU 4832 Chess
    HDU 4831
    SpringCloud 网飞系 转换阿里系2
    用jianmu建木自动化打包vue前端应用,并远程ssh建立文件夹,scp文件至对应目录
  • 原文地址:https://www.cnblogs.com/sishang/p/6555176.html
Copyright © 2011-2022 走看看