当前位置: 首页 > news >正文

MyBatis-Plus 的 FieldStrategy 属性

前几天做个需求的时候,有几个字段在更新的时候,可能为空。想着MyBatis-Plus有注解可以直接使用,就找寻了一下。此处记录一下。我用的MyBatis-Plus的版本是 3.5.1。版本之间对于 @TableField 中的方法定义有些区别,但大体相差不大。

1、FieldStrategy.IGNORED(我找的就是它)

  • 忽略判断。
  • 无论字段值是否为 null,都会拼接到 SQL 中。
  • 适合需要显式设置 null 值的场景,可能覆盖数据库默认值。

2、FieldStrategy.NOT_NULL

  • 非 NULL 判断。
  • 只有字段值不为 null 时,才会拼接到 SQL 中。
  • 不会将 null 值更新到数据库。

3、FieldStrategy.NOT_EMPTY

  • 非空判断。
  • 比 NOT_NULL 更严格一些。
  • 会检查是否为空字符串 (""),会检查是否为空集合。

4、FieldStrategy.DEFAULT

  • 默认策略。
  • 默认值为 NOT_NULL,可以进行全局配置。

5、FieldStrategy.NEVER

  • 永不加入。
  • 无论字段值是什么,都不会拼接到 SQL 中。
  • 完全排除该字段的更新/插入。
  • 适合敏感字段或只读字段。

在我使用的MyBatis-Plus版本 3.5.1 中,会用到 FieldStrategy 属性的方法有,insertStrategy()、updateStrategy()、whereStrategy()。

可以进行差异化配置:

@TableField(insertStrategy = FieldStrategy.NOT_NULL, updateStrategy = FieldStrategy.IGNORED)
private String mobile;

注意使用 FieldStrategy.IGNORED 时,数据库的字段不能设置为 NOT NULL。不然会报错。

FieldStrategy 是 MyBatis-Plus 灵活性的重要体现,合理使用可以大大简化数据持久层代码,同时可以保证数据操作的精确性和安全性。

无善无恶心之体,有善有恶意之动;知善知恶是良知,为善去恶是格物。-- 烟沙九洲

相关文章:

  • 2025年危化品安全管理人员备考指南|智能题库+核心考点解析
  • 工会成立100周年纪念,开发职工健身AI运动小程序、APP方案推荐
  • CDN流量技术详解
  • SpringMVC基础一(SpringMVC运行原理)
  • Navicat连接远程PostGreSQL失败
  • prometheus整合jmx_exporter 使用jmx_exporter监控Kafka
  • 指针指针的实现
  • 01分数规划
  • bash脚本手动清空mysql表数据
  • Java——抽象方法抽象类 接口 详解及综合案例
  • 从零到一:基于DeepSeek-R1的智能贪吃蛇开发实战
  • 【JAVA】常用的JDK8、JDK17 以及 JDK21 的主要新特性和演进过程
  • Ubuntu22安装docker28
  • .DS_Store文件泄露、.git目录泄露、.svn目录泄露漏洞利用工具
  • 驱动-字符设备驱动框架
  • Java学习手册:JVM、JRE和JDK的关系
  • 宇视设备视频平台EasyCVR打造智慧酒店安防体系,筑牢安全防线
  • openEuler Mugen 测试框架
  • 从PDF中提取表格:以GB/T2260—2007为例
  • js实现生肖宜忌展示