MyBatis-Plus 的 FieldStrategy 属性

打印 上一主题 下一主题

主题 1805|帖子 1805|积分 5415

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
前几天做个需求的时候,有几个字段在更新的时候,可能为空。想着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()。
可以进行差异化配置:
  1. @TableField(insertStrategy = FieldStrategy.NOT_NULL, updateStrategy = FieldStrategy.IGNORED)
  2. private String mobile;
复制代码
注意使用 FieldStrategy.IGNORED 时,数据库的字段不能设置为 NOT NULL。不然会报错。
FieldStrategy 是 MyBatis-Plus 灵活性的重要表现,合理使用可以大大简化数据长期层代码,同时可以保证数据操作的精确性和安全性。
无善无恶心之体,有善有恶意之动;知善知恶是知己,为善去恶是格物。-- 烟沙九洲

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

商道如狼道

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表