MyBatis中无效的列类型,invalid comparison:java.util.ArrayList and java.lang.String 两大坑

    使用Mybatis,入参是一个对象,这个对象有一个属性是map类型的。在动态sql中,我想把这个map里的value值给对应的条件赋值。

   xml文件:

如此这样写,总是会报无效的列类型。网上查阅得知,无效的列类型是因为值为null,所致。但我所传值taacountid不为null,何故。于是像一只无头苍蝇寻找答案。

寻找错误的时候修改为:<if test = " ...... properties.taacountid !=  ‘’ "   后,又报:invalid comparison :java.util.ArrayList and ......无效的比较异常。

找答案的时候,却又遇到了各种问题,明明最开始的时候,就已经接触到了问题的关键点(是因为值为null所致)。所以网上寻找答案的时候,要仔细思考,聪明的类比。

总结:

1,使用mybatis,当入参为对象,对象中有个map类型的属性。获取该map的value作为动态sql的条件时,该map只要有一个键值对为null,就会报异常。(当入参直接是map时,未尝试)

2,xml配置文件中,谨慎书写 :<if test = " xxx  != ‘’ " ...........   容易报invalid comparison:java.util.ArrayList ......... 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值