MyBatis更新时新值为null时,updateById()更新失败问题

 更新时间:2023年01月03日 09:58:33   作者:CECE00  
这篇文章主要介绍了MyBatis更新时新值为null时,updateById()更新失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MyBatis更新时新值为null时,更新失败

比如,类Rule中有个字段名为String note,备注是可以为空的。

note不为空时

  • 更新方法是,只输入要更新的值
  • 可以构造或者不构造实体对象
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","rule1").set("note", "cannot ignore");
userMapper.update(null, updateWrapper);

note为空时

可行操作:

updateWrapper()方法,把可能为空的字段,如notes,手动设置。

  • 而对于一次更新,所有字段都有可能被更新的情况,这次我是用了反射,设置了所有可能被更新的字段
  • 因为updateWrapper的方法,会默认忽略未被set的方法

手动写一个sql,在xml文件里。也可以绕开NOT NULL的校验

不可行操作:

  • updateById()方法,会默认忽略 为null的note字段
  • 有考虑过修改更新策略(默认配置为“非NULL判断”,需要改成“忽略判断”:

全局更新配置:

单个字段的配置:字段加注解

主要想说放弃修改配置的原因:

平时我都是用updateById(),很少用到updateWrapper的。

所以一开始觉得,修改策略是一劳永逸。

但其实,如果改了配置之后,原本项目里使用updateWrapper方法进行更新的部分就会受到影响:正常来说,会忽略更新为null的字段;

修改配置后,就不会忽略了为null的字段,这样会把原来的值误覆盖。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用maven的profile构建不同环境配置的方法

    使用maven的profile构建不同环境配置的方法

    这篇文章主要介绍了使用maven的profile构建不同环境配置的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java线程的调度与优先级详解

    Java线程的调度与优先级详解

    这篇文章主要为大家详细介绍了Java线程的调度与优先级,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Mybatis Generator 获取不到字段注释的解决

    Mybatis Generator 获取不到字段注释的解决

    这篇文章主要介绍了Mybatis Generator 获取不到字段注释的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringMVC+Spring+Mybatis实现支付宝支付功能的示例代码

    SpringMVC+Spring+Mybatis实现支付宝支付功能的示例代码

    这篇文章主要介绍了SpringMVC+Spring+Mybatis实现支付宝支付功能的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Spring Cloud Gateway重试机制原理解析

    Spring Cloud Gateway重试机制原理解析

    这篇文章主要介绍了Spring Cloud Gateway重试机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • springMVC之HandlerExceptionResolver使用

    springMVC之HandlerExceptionResolver使用

    这篇文章主要介绍了springMVC之HandlerExceptionResolver使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 详解mybatis.generator配上最新的mysql 8.0.11的一些坑

    详解mybatis.generator配上最新的mysql 8.0.11的一些坑

    这篇文章主要介绍了详解mybatis.generator配上最新的mysql 8.0.11的一些坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 使用spring oauth2框架获取当前登录用户信息的实现代码

    使用spring oauth2框架获取当前登录用户信息的实现代码

    这篇文章主要介绍了使用spring oauth2框架获取当前登录用户信息的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Java8 Comparator排序方法实例详解

    Java8 Comparator排序方法实例详解

    这篇文章主要介绍了Java8 Comparator排序方法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java 超详细讲解Spring MVC异常处理机制

    Java 超详细讲解Spring MVC异常处理机制

    Spring MVC中提供了一个通用的异常处理机制,它提供了一个成熟、简洁并且清晰的异常处理方案。当使用Spring MVC开发Web应用时,利用这套现成的机制进行异常处理也更加自然并且高效
    2022-04-04

最新评论