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