Mybatis单个参数的if判断报异常There is no getter for property named 'xxx' in 'class java.lang.Integer'的解决方案

 更新时间:2018年12月11日 10:57:57   作者:执笔记忆的空白  
今天小编就为大家分享一篇关于Mybatis单个参数的if判断报异常There is no getter for property named 'xxx' in 'class java.lang.Integer'的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

我们都知道mybatis在进行参数判断的时候,直接可以用<if test=""></if> 就可以了,如下:

1、常规代码

<update id="update" parameterType="com.cq2022.zago.order.entity.Test" >
  update t_test_l
  <set >
   <if test="trnsctWayId != null" >
    trnsct_way_id = #{trnsctWayId,jdbcType=TINYINT},
   </if>
   <if test="langId != null" >
    lang_id = #{langId,jdbcType=INTEGER},
   </if>
  </set>
  where trnsct_way_l_id = #{trnsctWayLId,jdbcType=INTEGER}
 </update>

但是单个参数和多参数的判断有个不同点,当我们的入参为entity实体,或者map的时候,使用if 参数判断没任何问题。

但是当我们的入参为java.lang.Integer  或者 java.lang.String的时候,这时候就需要注意一些事情了

具体代码如下(咱们看着代码说,先展示错误代码):

2、错误代码

<select id="getTrnsctListByLangId" parameterType="java.lang.Integer" resultType="java.lang.Integer">
  select 
  trnsct_id
  from t_trnsct_way_l where 
  <if test="langId != null" >
    and lang_id = #{langId}
  </if>
 </select>

上述代码存在一些问题,首先入参是java.lang.Integer, 而不是map或者实体的入参方式,对于这类单个入参然后用if判断的,mybatis有自己的内置对象,如果你在if判断里面 写的是你的入参的对象名,那就报异常:Internal error : nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'langId' in 'class java.lang.Integer'

3、正确代码:

这里就涉及到mybatis的内置对象_parameter,单个参数判断的时候,就不像1、 2那样直接用参数对象名判断了。还有就是数据类型最好加上

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Java写入写出Excel操作源码分享

    Java写入写出Excel操作源码分享

    这篇文章主要介绍了Java写入写出Excel操作源码分享,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Spring Boot日志打印配置详细介绍

    Spring Boot日志打印配置详细介绍

    本文详细介绍了如何在SpringBoot项目中进行日志配置,包括日志框架概述、日志级别配置、日志文件输出与滚动配置、电商交易系统中的应用示例以及常见日志问题及解决方案,通过灵活的日志配置,开发者可以更好地管理和调试软件系统,需要的朋友可以参考下
    2024-11-11
  • Mybatis如何获取最新插入数据的id

    Mybatis如何获取最新插入数据的id

    这篇文章主要介绍了Mybatis如何获取最新插入数据的id,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java桥接模式实例详解【简单版与升级版】

    Java桥接模式实例详解【简单版与升级版】

    这篇文章主要介绍了Java桥接模式,结合实例形式分析了java桥接模式简单版与升级版两种实现技巧,需要的朋友可以参考下
    2019-07-07
  • JavaWeb三大组件之监听器Listener详解

    JavaWeb三大组件之监听器Listener详解

    这篇文章主要介绍了JavaWeb三大组件之监听器Listener详解,在JavaWeb应用程序中,Listener监听器是一种机制,用于监听和响应特定的事件,它可以感知并响应与应用程序相关的事件,从而执行相应的逻辑处理,需要的朋友可以参考下
    2023-10-10
  • java非官方常用类MessageInfo消息接口示例

    java非官方常用类MessageInfo消息接口示例

    这篇文章主要为大家介绍了java非官方常用类MessageInfo消息接口使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 基于spring mvc请求controller访问方式

    基于spring mvc请求controller访问方式

    这篇文章主要介绍了spring mvc请求controller访问方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java遍历Map的几种方法分析

    java遍历Map的几种方法分析

    这篇文章主要介绍了java遍历Map的几种方法,结合实例形式分析了使用循环与迭代等方法操作Map遍历的相关技巧,需要的朋友可以参考下
    2016-08-08
  • Java使用POI实现excel文件的导入和导出

    Java使用POI实现excel文件的导入和导出

    这篇文章主要为大家详细介绍了Java如何使用POI实现excel文件的导入和导出功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • Java使用Lua实现动态扩展和脚本自动升级

    Java使用Lua实现动态扩展和脚本自动升级

    Lua是一种轻量级的脚本语言,常用于游戏开发和嵌入式系统中,这篇文章主要介绍了Java如何调用Lua实现动态扩展和脚本自动升级,感兴趣的可以学习下
    2023-08-08

最新评论