mybatis-puls使用修改语句部分字段不生效

mybatis-puls在使用修改语句的时候,没有报异常,但是修改的部分字段不生效,打印修改的数据语句,发现部分字段传进来的属性值是null,然后mybatis-puls修改的时候,发现这个字段是null,就忽略此字段的修改,但实际上,我们就是需要这个字段修改为null,没有操作成功的原因,是因为mybatis-puls在执行修改时,对字段的验证策略,我们看一下@TableField这个注解

 

 在进行修改操作时设置全局的field-strategy,默认的策略是DEFAULT(mybatis-plus版本不一样,FieldStrategy

枚举值也不一致),这个时候进行更改操作的时候,如果属性值为null,则不进行修改,所以就出现了我们操作不成功的情况。

解决这个问题,有三种方式:

1、设置全局的field-strategy

mybatis-plus:
  mapper-locations: classpath:mapper/*Mapper.xml
  global-config:
    # 数据库相关配置
    db-config:
      #字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"
      field-strategy: not_null

全局性配置,会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为null,可能会影响其他业务数据的正确性。

2、对特殊字段设置单独的field-strategy

mybatis-plus  3.0.7版本中,策略字段

 mybatis-plus  3.5.1版本中,策略字段

版本不一致,字段也不一样,要注意区分版本

3、 使用UpdateWrapper方式更新

在mybatis-plus中,除了updateById方法,还提供了一个update方法,直接使用update方法也可以将字段设置为null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值