当前位置: 首页 > ai >正文

开发避坑指南(35):mybaits if标签test条件判断等号=解析异常解决方案

异常信息

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: The expression 'orderInfo.idList' evaluated to a null value.

报错语句

<if test="orderInfo.queryFlag != null and orderInfo.queryFlag = 'settOrder'.toString() and orderInfo.idList != null"><foreach collection="orderInfo.idList" item="settId" open="and (" close=")" separator="or">b.sett_uuid =#{settId}</foreach>
</if>

异常分析

在MyBatis的XML映射文件中,=和==的使用是有区别的,=运算符主要用于SQL语句中的条件判断,表示相等比较,例如:

WHERE column_name = #{param}

==运算符仅适用于MyBatis的动态SQL标签(如、)中的OGNL表达式,用于比较Java对象的属性或参数值。例如:

<if test="param == 'value'">...</if>

在动态SQL中误用=代替==会导致解析失败。

解决方案

将test条件判断中的等号修改为两个等号,如下:

orderInfo.queryFlag == 'settOrder'.toString()
http://www.xdnf.cn/news/18435.html

相关文章:

  • 文件系统层面的可用块数量可用空间和比例
  • AI重塑职业教育:个性化学习计划提效率、VR实操模拟强技能,对接就业新路径
  • 拿到手一个前端项目,应该如何启动
  • 开发避坑指南(34):mysql深度分页查询优化方案
  • Ubuntu解决makefile交叉编译的问题
  • Android Jetpack | Hilt
  • 机器人爆发、汽车换代,速腾聚创开始讲新故事
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析八
  • 【数据结构】选择排序:直接选择与堆排序详解
  • 前端项目打包+自动压缩打包文件+自动上传部署远程服务器
  • 为什么需要关注Flink并行度?
  • 【C#】观察者模式 + UI 线程调度、委托讲解
  • 大学校园安消一体化平台——多警合一实现智能联动与网格化管理
  • Redis 678
  • Hyperledger Fabric官方中文教程-改进笔记(十四)-向通道中添加组织
  • open webui源码分析7—过滤器
  • 获取后台返回的错误码
  • Linux822 shell:expect 批量
  • 车辆方向数据集 - 物体检测
  • 作品集PDF又大又卡?我用InDesign+Acrobat AI构建轻量化交互式文档工作流
  • 【LeetCode每日一题】238. 除自身以外数组的乘积
  • 【链表 - LeetCode】2. 两数相加
  • 服务器与客户端
  • 零基础从头教学Linux(Day 18)
  • 北斗导航 | 基于MCMC粒子滤波的接收机自主完好性监测(RAIM)算法(附matlab代码)
  • 【Linux我做主】细说进程地址空间
  • Spring Boot全局异常捕获指南
  • Jenkins自动化部署服务到Kubernetes环境
  • Java 面试题训练助手 Web 版本
  • JavaScript 操作 DOM