Mybatis-plus: 乐观锁开启状态下Double类型size字段如果为null也会被更新且无法更改策略

Created on 16 Oct 2019  ·  7Comments  ·  Source: baomidou/mybatis-plus

当前使用版本(必须填写清楚,否则不予处理)


com.baomidou
mybatis-plus-boot-starter
3.2.0

该问题是怎么引起的?(最新版上已修复的会直接close掉)

前提:开启乐观锁
调用updateById方法更新数据,Double类型的size字段如果是null也会被携带上将结果集更新成null,我的更新策略是默认。

重现步骤

开启乐观锁:
image
实体类:
image

测试:
image

关闭乐观锁则不存在此问题!

报错信息

Most helpful comment

图片

All 7 comments

image
image
为什么????

总结问题:乐观锁开启状态下,实体类字段不能叫size,否则更新的时候,如果size字段为null,结果集也会被更新成null,且无法修改更新策略!!!

图片

生成if需转换size,keys,keySet,values,isEmpty这五个key.
<if test="size !=null "> 改为 <if test="['size'] !=null ">

@nieqiurong 意思是实体类中属性名 size 是mybatis-plus的特殊关键字吗?实体类中的字段不能叫做size?

@nieqiurong 奇怪的是只有在开启乐观锁的情况下会出现这个BUG,关闭乐观锁则不影响

@nieqiurong 奇怪的是只有在开启乐观锁的情况下会出现这个BUG,关闭乐观锁则不影响

和乐观锁无关,也不是mybatis-plus的关键字,这与ognl表达式处理有关.

Was this page helpful?
0 / 5 - 0 ratings