网站首页 > 博客文章 正文
目前,越来越多人选择mybatis-plus作为数据持久层的方案。在研发过程中有时候研发同学需要将数据库中的字段数据置为NULL的场景。这时候就有可能遇到赋值为null的字段不生效。
原因分析:
MyBatis-Plus采用了有三种字段验证策略:
- IGNORED(0): “忽略判断”, 所有字段都更新和插入
- NOT_NULL(1):“非 NULL 判断”, 只更新和插入非NULL值【默认】
- NOT_EMPTY(2):“非空判断”,只更新和插入非NULL值且非空字符串
没有对字段验证策略进行配置的时候,默认的方式是NOT_NULL。所以造成了NULL无法更新。
解决方法:
1.全局配置方式(不推荐)
在配置文件中添加:mybatis-plus.global-config.db-config.update-strategy=ignored
2.单字段推荐注解(推荐)
在数据库实体类的需要修改的字段上添加如下注解:
@TableField(value = "XXXX", updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.VARCHAR)
添加完配置后我们会发现该字段就能变为NULL了。但是没有需要修改的字段也被修改为了null。我们可以通过下面两种方案解决问题。
1.利用Wrappers.lambdaUpdate()解决问题
LambdaUpdateWrapper<UserVo> objectUpdateWrapper = Wrappers.lambdaUpdate();
objectUpdateWrapper.eq(UserVo::getId, 20);
objectUpdateWrapper.set(UserVo::getAddress, null);
mapper.update(null, objectUpdateWrapper);
2.执行的update的对象是先通过查询数据库得到的,然后对需要修改的字段赋值,最后使用update进行修改。【推荐】
猜你喜欢
- 2024-09-10 第三章 SQL数据字段、字段类型简介
- 2024-09-10 MySQL中查看数据表结构和字段信息的方法!查看字段数据类型
- 2024-09-10 如何较方便给上百张数据库表添加表字段
- 2024-09-10 建议收藏|ArcGIS中操作字段相关代码汇总
- 2024-09-10 如何把数据库表中某个字段的所有2.0,3.0带.0的数据批量修改为2,3
- 2024-09-10 MySQL数据库教程-数据表字段约束(mysql数据库字段长度限制)
- 2024-09-10 简单地运用MySQL的增删改查(mysql增删改查语句)
- 2024-09-10 Excel工作表中的7个数据库函数,易懂易理解,方便且实用
- 2024-09-10 MySQL数据库知识汇总(数据库mysql知识点)
- 2024-09-10 在此强调,一定要注意数据库字段NULL的问题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)