使用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
投稿

猜你喜欢

  • 使用Spring特性实现接口多实现类的动态调用方式

    2022-04-11 05:41:42
  • java常用工具类之DES和Base64加密解密类

    2023-12-20 17:48:31
  • Java基础将Bean属性值放入Map中的实例

    2023-10-11 13:57:40
  • 基于eclipse.ini内存设置的问题详解

    2021-08-25 02:56:55
  • java中的this引用及对象构造初始化

    2023-03-07 09:38:17
  • 如何利用java控制鼠标操作一些重复的事情

    2021-11-12 12:54:02
  • Java中的InputStreamReader和OutputStreamWriter源码分析_动力节点Java学院整理

    2022-10-13 10:46:53
  • C#使用LINQ查询表达式的基本子句总结

    2022-08-05 05:09:41
  • Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)

    2023-11-27 11:02:17
  • Maven的生命周期与自定义插件实现方法

    2022-04-06 20:13:48
  • SpringBoot整合Pulsar的实现示例

    2021-10-09 17:39:35
  • Android中使用TextView实现文字跑马灯效果

    2023-07-28 11:07:33
  • redis redisson 集合的使用案例(RList、Rset、RMap)

    2023-11-13 13:50:21
  • Activiti开发环境的搭建过程详解

    2021-08-16 07:13:05
  • Java请求转发和请求重定向区别详解

    2023-05-19 07:30:17
  • Jenkins Pipeline 部署 SpringBoot 应用的教程详解

    2022-09-26 14:06:27
  • Mybatis-plus基于redis实现二级缓存过程解析

    2021-12-08 23:34:43
  • Android获取常用辅助方法(获取屏幕高度、宽度、密度、通知栏高度、截图)

    2023-10-30 19:42:57
  • SpringBoot实现Excel文件批量上传导入数据库

    2023-11-29 11:13:44
  • JAVA 格式化日期、时间的方法

    2023-10-17 07:53:22
  • asp之家 软件编程 m.aspxhome.com