Mybatis

您所在的位置:网站首页 mybatis查询单个字段 Mybatis

Mybatis

2023-05-03 03:59| 来源: 网络整理| 查看: 265

Mybatis-Plus将字段设置为null没起作用怎么解决 发布时间:2023-04-25 17:09:32 来源:亿速云 阅读:85 作者:iii 栏目:开发技术

这篇文章主要介绍了Mybatis-Plus将字段设置为null没起作用怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mybatis-Plus将字段设置为null没起作用怎么解决文章都会有所收获,下面我们一起来看看吧。

项目场景:

最近在做一个需求的时候需要把数据库中的某个字段设置为空

问题描述:

在代码中通过set方法对一个字段设置成null,发现并没有起作用

原因分析:

经过查询是因为Mybatis-Plus默认的更新策略设置的问题,Mybatis-Plus中FieldStrategy有三种策略:

IGNORED:忽略。不管有没有有设置属性,所有的字段都会设置到insert语句中,如果没设置值会更新为null;

NOT_NULL:非 NULL,默认策略。也就是忽略null的字段,不忽略"";

NOT_EMPTY:非空。为null,为空串的忽略,就是如果设置值为null,“”,不会插入数据库;

默认的是NOT_NULL,也就是忽略null字段,所以更新不成功。

解决方案:

需对 FieldStrategy 策略进行调整,有如下三种方式:

方式一:调整全局的验证策略,如下:mybatis-plus:   mapper-locations: classpath:/mapper/**/*.xml   typeAliasesPackage: com.test.application.test.admin.entity   global-config:     #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";     id-type: 0     #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"     field-strategy: 0     #驼峰下划线转换     db-column-underline: true     #刷新mapper 调试神器     refresh-mapper: true     #数据库大写下划线转换     #capital-mode: true   configuration:     map-underscore-to-camel-case: true     cache-enabled: true     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl方式二:【推荐】调整字段验证注解

Mybatis-Plus 版本3.1.2及以上,根据具体情况,在需要更新的字段中调整验证注解,如验证非空:

@TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED) private String name; 或者单个的例子: @TableField(updateStrategy = FieldStrategy.IGNORED) private String username;方式三:使用 UpdateWrapper (3.x)

使用以下方法来进行更新或插入操作:

//updateAllColumnById(entity) // 全部字段更新: 3.0已经移除 mapper.update(   new User().setName("mp").setAge(3),   Wrappers.lambdaUpdate()           .set(User::getEmail, null) //把email设置成null           .eq(User::getId, 2) ); // 也可以参考下面这种写法 mapper.update(    null,    Wrappers.lambdaUpdate()       .set(User::getAge, 3)       .set(User::getName, "mp")       .set(User::getEmail, null) // 把email设置成null       .eq(User::getId, 2) );

关于“Mybatis-Plus将字段设置为null没起作用怎么解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Mybatis-Plus将字段设置为null没起作用怎么解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

推荐阅读: ibm服务器系统如何安装 如何解决电脑上的打印机老是文档挂起无法打印问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mybatis-plus null 上一篇新闻:netty服务端处理请求联合pipeline源码分析 下一篇新闻:Java8中Stream流求最大值最小值怎么实现 猜你喜欢 Java中方法重载和方法重写的区别有哪些 Java如何将PPT幻灯片转为HTML文件 springboot中常用注解有哪些 Java常用工具有哪些 Java如何实现分布式事务 Spring-Integration执行过程的示例分析 在foreach循环中JAVA集合不能添加或删除元素的原因是什么 python中opencv如何实现图片文本倾斜校正 如何使用SpringBoot将文件打包成zip存放或导出 C++中如何实现链表的排序算法


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3