Mybatis-Plus 更新字段为null的方式,看这篇就够了!!!

数据库 0 1330
小小草
小小草 2020年10月25日 12:56 发表
摘要: 注意: 3.1.2版本之前 是strategy注解 个人感觉有些危险, (多人开发或者时间久了 可能会遗忘该注解 出现不必要的错误)

1. 使用注解

注意: 3.1.2版本之前 是strategy注解 个人感觉有些危险, (多人开发或者时间久了 可能会遗忘该注解 出现不必要的错误) 
    使用注解推荐升级到3.1.2以上每种操作方式单独定义 不想升级mp版本请看第二/第三条方式

  1. // 修改时忽略null 和空值
  2. @TableField(strategy = FieldStrategy.IGNORED)
  3. private BigDecimal discountPrice;

同时注解TanleField的strategy属性还有三个值

3.1.2版本后的改动:

前几天改若依框架的时候发现没有strategy 属性了  就打开源码看了下  在3.1.2版本后strategy 更新为了以下三个

 

2.

 还有一种情形:

有些业务需要该字段为null的情况下更新为null 有些情况则在为null的情况下不进行更新 可以使用
 updateByPrimaryKey(全字段更新)和updateByPrimaryKeySelective(不为空字段更新)

 

Mybatis-Plus开发人员解释链接:https://github.com/baomidou/mybatis-plus/issues/300

3. 

MybatisPlus3.0已经更新了 修改构造器(UpdateWrapper) 

可以使用该构造器的set()方法将字段更新为Null

  1. set(String column, Object val)
  2. // 将Id为1的用户名更新为null
  3. userUpdateWrapper.eq("id",1);
  4. userUpdateWrapper.set("userName",null);
  5. userService.update(userUpdateWrapper);
点赞 0 收藏(0)    分享
相关标签: mysql
问题没解决?让AI助手帮你作答 AI助手
0 个评论
  • 消灭零评论