MyBatis-Plus之@TableField的用法解读
更新时间:2023年11月04日 10:42:02 作者:TM_enn
这篇文章主要介绍了MyBatis-Plus之@TableField的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
@TableField
| 属性 | 类型 | 描述 |
|---|---|---|
| value | String | 数据库字段名 |
| exist | boolean | exist = false 表示该属性不是数据库字段,新增等使用bean的时候,mybatis-plus就会忽略这个,不会报错 |
| condition | String | 预处理 where 实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的 %s=#{%s}。@TableField(condition = SqlCondition.LIKE)输出SQL为: select 表 where name LIEK CONCAT('%',值,'%') |
| update | String | 预处理 update set 部分注入,例如:当在age字段上注解update=“%s+1” 表示更新时会 set age=age+1 (该属性优先级高于 el 属性) |
| insertStrategy | FieldStrategy | Mybatis-plus insert对字段的操作 |
| updateStrategy | FieldStrategy | Mybatis-plus update对字段的操作 |
| whereStrategy | FieldStrategy | Mybatis-plus where条件对字段的操作 |
| fill | FieldFill | 字段自动填充策略 |
| select | boolean | @TableField(select = false) 查询时,则不返回该字段的值 。 |
| keepGlobalFormat | boolean | 是否保持使用全局的 format 进行处理 |
| jdbcType | JdbcType | JDBC 类型 (该默认值不代表会按照该值生效) |
| typeHandler | Class<? extends TypeHandler> | 类型处理器 (该默认值不代表会按照该值生效) |
| numericScale | String | 指定小数点后保留的位数 |
FieldStrategy
| 值 | 描述 |
|---|---|
| IGNORED | 忽略判断,该字段值不论是什么,都进行更新 |
| NOT_NULL | (默认)不为null则更新,也就是字段值为null则不生成到sql中不更新该字段,如果字段值为""(空字符串)也是会更新的 |
| NOT_EMPTY | 不为空则更新,注意该字段值为null或为""(空字符串)都不会更新 |
| DEFAULT | 默追随全局配置,和IGNORED 中的配置保持一致 |
| NEVER | 不做更新操作,该字段值不论是什么,都不进行更新 |
FieldFill
| 值 | 描述 |
|---|---|
| DEFAULT | 默认不处理 |
| INSERT | 插入时填充字段 |
| UPDATE | 更新时填充字段 |
| INSERT_UPDATE | 插入和更新时填充字段 |
相关例子
| 例子 | 描述 |
|---|---|
| @TableField(select = false) | 不返回字段的值,但单独查询该字段就可以返回值,freezerDevice.selectList(Wrappers.<FreezerDevice>lambdaQuery().select(FreezerDevice::getChannel)) |
| @TableField(insertStrategy = FieldStrategy.IGNORED) | Mybatis-plus insert 会忽略该字段值的判断 |
| @TableField(updateStrategy = FieldStrategy.IGNORED) | Mybatis-plus update 会忽略该字段值的判断 |
| @TableField(whereStrategy = FieldStrategy.IGNORED) | Mybatis-plus where条件中会忽略该字段值的判断 |
| @TableField(insertStrategy = FieldStrategy.IGNORED,updateStrategy = FieldStrategy.IGNORED,whereStrategy = FieldStrategy.IGNORED) | insertStrategy 、updateStrategy、whereStrategy 可以聚合操作 |
/** * 更新时如果字段为null,数据库的值就会更新为null */ @TableField(updateStrategy = FieldStrategy.IGNORED) private String name;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
mybatis-plus实现自定义SQL、多表查询与多表分页查询语句实例
mybatisplus是个很好用的插件,相信小伙伴们都知道,下面这篇文章主要给大家介绍了关于mybatis-plus实现自定义SQL、多表查询与多表分页查询语句的相关资料,需要的朋友可以参考下2022-09-09
Springboot整合Redis实现超卖问题还原和流程分析(分布式锁)
最近在研究超卖的项目,写一段简单正常的超卖逻辑代码,多个用户同时操作同一段数据出现问题,纠结该如何处理呢?下面小编给大家带来了Springboot整合Redis实现超卖问题还原和流程分析,感兴趣的朋友一起看看吧2021-10-10
Spring Boot集成Redis实现缓存机制(从零开始学Spring Boot)
这篇文章主要介绍了Spring Boot集成Redis实现缓存机制(从零开始学Spring Boot),需要的朋友可以参考下2017-04-04
基于Docker的K8s(Kubernetes)集群部署方案
这篇文章主要介绍了基于Docker的K8s(Kubernetes)集群部署方案,文中介绍了安装k8s的可视化界面的相关操作,需要的朋友可以参考下2024-01-01


最新评论