Mybatis 之整数类型的if判断

在使用Mybatis进行ORM操作时,遇到一个奇特问题:当插入帖子时,字段`is_anonymous`根据Integer类型的`isAnonymous`判断是否插入。然而,即使`isAnonymous`为0,数据库中仍默认插入了-1。经过尝试,发现`<if test="isAnonymous != null">`的条件判断在Mybatis中未生效。这个问题在网上也存在争议,有人认为是Mybatis的bug。
摘要由CSDN通过智能技术生成

在工作中一直使用mybatis 来做 orm框架,但是第一次遇到了一个比较奇葩的问题。
问题场景复现 插入一个帖子,其中有个字段是否匿名 is_anonymous 在oracle表中 是 is_anonymous number default -1。然后 我就根据前台是否传Integer类型的 isAonymous 字段来确定sql中是否需要传is_anonymous字段

insert into msg_t(
id,
<if test="isAnonymous!=null and isAnonymous!=''">
  is_anonymous
</if>
)values(
1,
<if test="isAnonymous!=null and isAnonymous!=''">
    #{isAnonymous,jdbcType=NUMBERIC}
</if>
)

当我前台传 的参数是:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值