Mybatis使用update更新值为null时不生效

这篇具有很好参考价值的文章主要介绍了Mybatis使用update更新值为null时不生效。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

该文章纯属记录使用过程中遇到的问题更新null值没有生效的问题解决办法,内容较为简单。

1.出现的问题

前端修改数据时把属性内容删除然后进行保存,默认传的null,后端更新时属性值为null,然后调用updateById进行更新时发现该属性还是原来的值:

name:"tt";

//前端页面把该属性内容进行删除传给我后端
{
name: null
}

//后端接收到的
name: null

//使用该方法进行更新
updateById();

//结果name还是等于更新前的值
name: "tt";

后面百度发现该update方法不会对属性null的进行更新

2.原因

mybatis-plus FieldStrategy 有三种策略:

  • IGNORED:忽略
  • NOT_NULL:非 NULL,默认策略
  • NOT_EMPTY:非空

默认非空,所有更新时不生效的问题

3.解决方法

设置全局的field-strategy 

Mybatis使用update更新值为null时不生效

这样全局配置会把所有的属性都忽略,对于一些不需要改的属性可能会影响业务的准确性。

②给单独的属性设置field-strategy

根据实际应用情况对某些属性增加该注解来忽略策略

@TableField(strategy=FieldStrategy.IGNORED)

Mybatis使用update更新值为null时不生效

这样增加该注解的属性就可以使用updateById()方法进行更新null值。

------当然还有其他的好的方法也可以去参考文章来源地址https://www.toymoban.com/news/detail-439547.html

到了这里,关于Mybatis使用update更新值为null时不生效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【mybatis】 mybatis在mysql 更新update 操作 更新时间字段按照年月日时分秒格式 更新为当前时间...

    【mybatis】 mybatis在mysql 更新update 操作 更新时间字段按照年月日时分秒格式 更新为当前时间…

    2024年02月10日
    浏览(30)
  • Mybatis-plus更新字段为null

    更新时,把某些字段的值更新为null,但是目前mybatis-plus的update/updateById会忽略实体类中为null的字段,导致这些字段没有更新还是原来的值。 网上比较常用的有两种: 缺点:当在其它接口更新别的字段时,本来没有想更新这个字段,但是也会把这个字段更新为null。 缺点:需

    2024年02月06日
    浏览(54)
  • Mybatis-plus怎么更新Null字段?

    本文介绍【Mybatis-plus】updateById()方法不能更新字段为null的原因及解决办法。 在日常项目开发过程中,经常会使用Mybatis-plus的updateById()方法,快速将接收道德参数或者查询结果中原本不为null的字段更新为null,并且该字段在数据库中可为null,这个时候使用updateById()并不能实现

    2024年02月13日
    浏览(43)
  • mybatis-plus update更新操作(三种方式)

    MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 愿景 我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。 方式一(UpdateWrapper 条件构造器) 方

    2024年02月11日
    浏览(51)
  • mybatis-plus更新字段为null值

    mybatis-plus相信大家都不陌生所以不在介绍 首先我们先看一下mybatis-plus的官网上的介绍  官网推荐的有三种方式可以实现 第一种:调整全局策略, mybatis-plus默认的全局策略为NOT_NULL非空默认策略,其实就是当更新是某个字段为空,则不对该字段进行更新,这也是我们常用的策略所此种

    2024年02月14日
    浏览(43)
  • MyBatis-plus更新对象时将字段值更新为null

            mybatis-plus在执行更新操作,当更新字段为 空字符串 或者 null 的则不会执行更新。如果要将指定字段更新null,可以通过以下三种方式实现。 1、全局配置         可以在 application.yml 配置文件中注入配置 GlobalConfiguration 属性 update-strategy, 将 update-strategy 策略调

    2024年02月15日
    浏览(41)
  • MyBatis-Plus 更新(update)方法,属性参数为空时进行更新与不进行更新的设置

    解决方案: 在实体类上使用@TableField注解 FieldStrategy的源码中,一共有4种策略类型。 附上mybatis-plus官网链接地址: https://baomidou.com/pages/223848/#fieldstrategy 有兴趣的小伙伴可以点击看看

    2024年02月11日
    浏览(72)
  • 【Mybatis-plus】updateById()方法不能更新字段为null的原因及解决办法

    一、问题描述 ​ 在日常项目开发过程中,经常会使用Mybatis-plus的updateById()方法,快速将接收道德参数或者查询结果中原本不为null的字段更新为null,并且该字段在数据库中可为null,这个时候使用updateById()并不能实现这个操作,不会报错,但是对应的字段并没有更新为null。

    2024年02月02日
    浏览(39)
  • SQL 中的 NULL 值:定义、测试和处理空数据,以及 SQL UPDATE 语句的使用

    什么是 NULL 值? NULL 值是指字段没有值的情况。如果表中的字段是可选的,那么可以插入新记录或更新记录而不向该字段添加值。此时,该字段将保存为 NULL 值。需要注意的是,NULL 值与零值或包含空格的字段不同。具有 NULL 值的字段是在记录创建期间留空的字段。 如何测试

    2024年02月05日
    浏览(43)
  • Collectors.toMap方法value值为null时的解决方案

    发现Collectors.toMap的一个坑,key可以为null,但value不能为null,否则抛空指针异常nullPointerException。这可真是反直觉。 使用Optional类处理value,优点是可以继续使用Collectors.toMap,缺点是为null的value会被改,而这可能违反业务上的期望。 使用 Stream#collect(java.util.function.SupplierR, java.

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包