需求描述:
大致场景是订单模块去接受流程模块发送的MQ消息,针对MQ消息发送的是一个实体类,该实体类中有一个String类型的字段,用于判断当前业务状态,1 表示 审核中 2 表示 已审核 等。订单模块根据这个状态去修改自身状态的信息
可以看到这里有一个If标签,用于判断这个eventType 的值是否成立,成立就走不同的分支,但是在实际场合在中运行发现 并没有走我的if 标签
解决方案:
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类型数字转换的过程中会时效,会将此类型自动转换为字符,那么针对字符与字符串的比较基于== 肯定就失败了。
标签:String,标签,类型,procInsId,模块,MyBatis,procDefId From: https://www.cnblogs.com/zgf123/p/18264439