我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mybatis-Plus将字段设置为null

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mybatis-Plus将字段设置为null

Mybatis-Plus将字段设置为null

项目场景:

最近在做一个需求的时候需要把数据库中的某个字段设置为空

问题描述:

在代码中通过set方法对一个字段设置成null,发现并没有起作用

原因分析:

经过查询是因为Mybatis-Plus默认的更新策略设置的问题,Mybatis-Plus中FieldStrategy有三种策略:

  • IGNORED:忽略。不管有没有有设置属性,所有的字段都会设置到insert语句中,如果没设置值会更新为null;
  • NOT_NULL:非 NULL,默认策略。也就是忽略null的字段,不忽略"";
  • NOT_EMPTY:非空。为null,为空串的忽略,就是如果设置值为null,“”,不会插入数据库;

默认的是NOT_NULL,也就是忽略null字段,所以更新不成功。

解决方案:

需对 FieldStrategy 策略进行调整,有如下三种方式:

方式一:调整全局的验证策略,如下:

mybatis-plus:  mapper-locations: classpath:/mapper*.xml  typeAliasesPackage: com.test.application.test.admin.entity  global-config:    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";    id-type: 0    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"    field-strategy: 0    #驼峰下划线转换    db-column-underline: true    #刷新mapper 调试神器    refresh-mapper: true    #数据库大写下划线转换    #capital-mode: true  configuration:    map-underscore-to-camel-case: true    cache-enabled: true    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

方式二:【推荐】调整字段验证注解

Mybatis-Plus 版本3.1.2及以上,根据具体情况,在需要更新的字段中调整验证注解,如验证非空:

@TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)private String name;或者单个的例子:@TableField(updateStrategy = FieldStrategy.IGNORED)private String username;

方式三:使用 UpdateWrapper (3.x)

使用以下方法来进行更新或插入操作:

//updateAllColumnById(entity) // 全部字段更新: 3.0已经移除mapper.update(  new User().setName("mp").setAge(3),  Wrappers.lambdaUpdate()          .set(User::getEmail, null) //把email设置成null          .eq(User::getId, 2));// 也可以参考下面这种写法mapper.update(   null,   Wrappers.lambdaUpdate()      .set(User::getAge, 3)      .set(User::getName, "mp")      .set(User::getEmail, null) // 把email设置成null      .eq(User::getId, 2));

来源地址:https://blog.csdn.net/weixin_45285213/article/details/128861021

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mybatis-Plus将字段设置为null

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Mybatis-Plus将字段设置为null解决方法

MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生,下面这篇文章主要给大家介绍了关于Mybatis-Plus将字段设置为null的解决方法的相关资料,需要的朋友可以参考下
2023-05-17

Mybatis-plus更新字段为null

Mybatis-plus更新字段为null 1、在实体类的属性上增加注解:@TableField(updateStrategy = FieldStrategy.IGNORED)2、使用LambdaUpdateWrapper的set更
2023-08-19

Mybatis-Plus使用updateById()、update()将字段更新为null

本文主要介绍了Mybatis-Plus使用updateById()、update()将字段更新为null,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2022-11-13

Mybatis-Plus中update()和updateById()将字段更新为null

本文主要介绍了Mybatis-Plus中update()和updateById()将字段更新为null,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2022-11-13

mybatis plus如何更新字段为null

本篇内容主要讲解“mybatis plus如何更新字段为null”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis plus如何更新字段为null”吧!mybatis plus 将字段
2023-06-29

利用mybatis怎么将查询字段为null的值设置为0

这期内容当中小编将会给大家带来有关利用mybatis怎么将查询字段为null的值设置为0,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。自动生成的mybatis mapper文件长这样2023-06-06

MyBatis-Plus 实现数据库字段更新为 NULL

feeMapper.update(Wrappers.lambdaUpdate() .eq(FeePO::getId, feeDO.getId()) .set(ObjectUtils.isNotEmpty(feeDO.getMoney()), Fee
MyBatis-Plus 实现数据库字段更新为 NULL
2016-02-29

MyBatis-Plus细节整理——时间比较查询、设置某个字段值为null

Mybatis-Plus细节整理——时间比较查询、设置某个字段值为null MyBatis-Plus细节整理,会持续更新 1. 时间字段的比较和查询 MyBatis-Plus 时间字段比较,默认eq、ne、gt、lt、ge、le时间比
2023-08-25

使用mybatis-plus想要修改某字段为null问题

这篇文章主要介绍了使用mybatis-plus想要修改某字段为null问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-22

sql怎么设置字段值为null

要将SQL字段的值设置为NULL,可以使用以下方法:1. 在INSERT语句中使用NULL关键字来设置字段的值为NULL。例如:```sqlINSERT INTO table_name (column1, column2, column3)
2023-10-12

mybatis-plus支持null字段全量更新的两种方法

本文主要介绍了mybatis-plus支持null字段全量更新的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-24

编程热搜

目录