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

    <baomidou.version>3.0.5</baomidou.version>

该问题是如何引起的?(确定最新版也有问题再提!!!)

@TableField(value = "VOUCHERS_TOTAL",strategy= FieldStrategy.IGNORED,el = "vouchersTotal,jdbcType=DECIMAL,javaType=java.math.BigDecimal") private BigDecimal vouchersTotal;

重现步骤(如果有就写完整)

使用update 方法

报错信息

本来对应的数据库 字段vouchersTotal 是有值的,更新其他字段,当前字段vouchersTotal 也被更新为空 1.使用 baseMapper.updateById(实体类); 不存在该问题

2.使用 com.baomidou.mybatisplus.core.mapper.BaseMapper#update 存在上述问题 queryWrapper.lambda().in(TransaBuyoutRepoInfo::getTransaBuyoutRepoInfoId, transaBuyoutRepoInfoQuery.getTradeIds()); baseMapper.update(TransaBuyoutRepoInfo.builder().tradingStatus("XJ").build(), queryWrapper);

Comment From: miemieYaho

FieldStrategy.IGNORED 就是忽略任何null判断的, updateById也会有,除非你updateById的entity该字段不为null

Comment From: laoduDYM

我也遇到了同样得问题,我觉得 FieldStrategy.IGNORED 与一些编程逻辑冲突,当我有一条记录其中某个字段可以为空值得情况下我加了该注解当我新增与更新整条记录得时候没有问题,当使用wrapper更新指定字段得时候,我是不会传这个值得,我只想单纯得更新指定的字段,因为例如活动、订单等带有状态位的记录在实际业务开发中非常常见,修改的频率也很高;我觉得应带单独处理下这个问题;或者有其他的更好的方法我没有找到

Comment From: maoxiaoxiong

FieldStrategy.IGNORED 就是忽略任何null判断的, updateById也会有,除非你updateById的entity该字段不为null

搞清楚了 是我使用的问题 不可能在用这个注解的时候让他做两件相反的事情 单独的字段 需要单独更新

Comment From: maoxiaoxiong

我也遇到了同样得问题,我觉得 FieldStrategy.IGNORED 与一些编程逻辑冲突,当我有一条记录其中某个字段可以为空值得情况下我加了该注解当我新增与更新整条记录得时候没有问题,当使用wrapper更新指定字段得时候,我是不会传这个值得,我只想单纯得更新指定的字段,因为例如活动、订单等带有状态位的记录在实际业务开发中非常常见,修改的频率也很高;我觉得应带单独处理下这个问题;或者有其他的更好的方法我没有找到

有些情况需要单独处理