mybatis-plus 在 serviceImpl 层可以直接使用 this.baseMapper.update 和 updateById , 如果更新的字段值是null,这时候需更新为 null
mybatis-plus 在 serviceImpl 层可以直接使用 this.baseMapper.update 和 updateById ,
如果更新的字段值是null,这时候需更新为 null 的字段更新不成功。打印的 sql 也没有更新为 null 的字段。
原因:
Mybatis-Plus默认的更新策略设置的问题,Mybatis-Plus中FieldStrategy有三种策略: IGNORED:忽略。不管有没有有设置属性,所有的字段都会设置到insert语句中,如果没设置值会更新为null; NOT_NULL:非 NULL,默认策略。也就是忽略null的字段,不忽略""; NOT_EMPTY:非空。为null,为空串的忽略,就是如果设置值为null,“”,不会插入数据库;
解决:
1)当需要设置可能为null的字段,需要用 lambdaUpdate()
使用方法为:
this.lambdaUpdate() .set(对象::get字段名, 需要修改为什么样的值) .eq(对象::get条件字段名, 条件满足这个值) .update(new 对象()); // 举个例子 this.lambdaUpdate() .set(User::getName(), name) .eq(User::getUserId, userId) .update(new User());
或者
sysUserService.update(null, new LambdaUpdateWrapper() .eq(SysUser::getUsername,username) .set(SysUser::getName,null) .set(SysUser::getPassWord,null) );
@TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)private String name;单个的例子:@TableField(updateStrategy = FieldStrategy.IGNORED)private String username;
来源地址:https://blog.csdn.net/Little_Arya/article/details/129737960
--结束END--
本文标题: mybatis-plus使用this.baseMapper.update和updateById更新null值不生效
本文链接: https://www.lsjlt.com/news/399544.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-22
2024-05-22
2024-05-22
2024-05-22
2024-05-22
2024-05-22
2024-05-22
2024-05-21
2024-05-21
2024-05-21
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模
0