MyBatis针对String类型的数字<if>标签失效问题

需求描述:
大致场景是订单模块去接受流程模块发送的MQ消息,针对MQ消息发送的是一个实体类,该实体类中有一个String类型的字段,用于判断当前业务状态,1 表示 审核中 2 表示 已审核 等。订单模块根据这个状态去修改自身状态的信息

image

可以看到这里有一个If标签,用于判断这个eventType 的值是否成立,成立就走不同的分支,但是在实际场合在中运行发现 并没有走我的if 标签
image

解决方案:
1、通过 .toString()方式转换后判断

<if test="eventType =='1'.toString()>
,status = 1,procDefId =#{procDefId},procInsId = #{procInsId}
</if>

2、通过 转换 单引号 和双引号的位置判断

<if test='eventType =="1"''>
,status = 1,procDefId =#{procDefId},procInsId = #{procInsId}
</if>

以上两种方式都可以完美解决这个问题,mybatis在String类型数字转换的过程中会时效,会将此类型自动转换为字符,那么针对字符与字符串的比较基于== 肯定就失败了。

posted @   自学Java笔记本  阅读(130)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示