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

作者:普通网友 时间:2021-09-17 02:17:35 

mybatis-plus想要修改某字段为null

问题场景

使用mybatis + mybatisPlus进行修改某字段,想要将其设为null, 但执行时没有成功。

原因

mybatis-plus会将所有为空的字段在修改时进行过滤,不进行设为空的修改操作。

解决办法

在相关字段上加上注解

@TableField(strategy = FieldStrategy.IGNORED)

例:

@TableField(strategy = FieldStrategy.IGNORED)
private Long classId;

mybatis-plus更新字段为null不生效

异常说明

mapper.updateById()时,set为null未生效,其他字段更新

periodRecordOriginal.setSettleTime(null);
periodRecordOriginal.setActualSettleTime(null);
periodRecordOriginal.setSettleStatus(0);
int i = periodRecordMapper.updateById(periodRecordOriginal);

原理

MyBatis-Plus对字段的验证策略导致的,MyBatis-Plus默认进⾏了不是全量更新的策略,默认忽略为null 的字段的

解决办法

1)修改MyBatis-Plus 全局默认策略

缺点:这样做会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为null

mybatis-plus:
  global-config:
      #字段策略 0:"忽略判断",1:"非 NULL 判断",2:"非空判断"
    field-strategy: 0

2)修改实体类注解,改变字段的忽略判断

缺点:需要注意数据库字段是否设置为 非null ,如果为非null 也更新不成功

@TableField( updateStrategy = FieldStrategy.IGNORED)
    private Date settleTime;

来源:https://blog.csdn.net/m0_67403073/article/details/124104442

标签:mybatis-plus,修改字段,null
0
投稿

猜你喜欢

  • c语言实现基数排序解析及代码示例

    2021-10-17 19:37:51
  • idea设置JVM运行参数的几种方式

    2023-05-26 14:57:33
  • Java过滤器doFilter里chain.doFilter()函数的理解

    2023-11-11 14:45:50
  • C语言中的回调函数实例

    2021-09-27 08:37:12
  • C#实现自动生成电子印章

    2022-12-08 10:47:58
  • 用java实现杨辉三角的示例代码

    2023-08-12 09:02:21
  • Java设计模式之java备忘录模式详解

    2023-08-22 19:31:07
  • 一文详解C++模板和泛型编程

    2022-12-28 09:40:46
  • JVM类加载机制原理及用法解析

    2021-08-17 00:22:29
  • C#中使用闭包与意想不到的坑详解

    2022-08-15 00:13:58
  • 关于maven打包时的报错: Return code is: 501 , ReasonPhrase:HTTPS Required

    2022-09-09 00:50:51
  • Spring MVC 简单的hello world的实现

    2023-06-18 02:56:41
  • Android下拉刷新上拉加载控件(适用于所有View)

    2022-09-20 21:40:20
  • 基于XML配置Spring的自动装配过程解析

    2023-02-28 00:42:12
  • Java Swing中的文本框(JTextField)与文本区(JTextArea)使用实例

    2022-08-15 00:17:46
  • Android用户注册界面简单设计

    2023-07-13 02:59:50
  • Android之禁止ViewPager滑动实现实例

    2022-03-17 23:55:40
  • android开发之listView组件用法实例简析

    2023-02-05 10:31:52
  • 使用SpringBoot整合ssm项目的实例详解

    2023-09-29 16:34:43
  • 基于C#实现语音识别功能详解

    2023-07-12 18:55:24
  • asp之家 软件编程 m.aspxhome.com