MyBatis-Plus之@TableField的用法解读

 更新时间:2023年11月04日 10:42:02   作者:TM_enn  
这篇文章主要介绍了MyBatis-Plus之@TableField的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

@TableField

属性类型描述
valueString数据库字段名
existbooleanexist = false 表示该属性不是数据库字段,新增等使用bean的时候,mybatis-plus就会忽略这个,不会报错
conditionString预处理 where 实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的 %s=#{%s}。@TableField(condition = SqlCondition.LIKE)输出SQL为: select 表 where name LIEK CONCAT('%',值,'%')
updateString预处理 update set 部分注入,例如:当在age字段上注解update=“%s+1” 表示更新时会 set age=age+1 (该属性优先级高于 el 属性)
insertStrategyFieldStrategyMybatis-plus insert对字段的操作
updateStrategyFieldStrategyMybatis-plus update对字段的操作
whereStrategyFieldStrategyMybatis-plus where条件对字段的操作
fillFieldFill字段自动填充策略
selectboolean@TableField(select = false) 查询时,则不返回该字段的值 。
keepGlobalFormatboolean是否保持使用全局的 format 进行处理
jdbcTypeJdbcTypeJDBC 类型 (该默认值不代表会按照该值生效)
typeHandlerClass<? extends TypeHandler>类型处理器 (该默认值不代表会按照该值生效)
numericScaleString指定小数点后保留的位数

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、多表查询与多表分页查询语句实例

    mybatis-plus实现自定义SQL、多表查询与多表分页查询语句实例

    mybatisplus是个很好用的插件,相信小伙伴们都知道,下面这篇文章主要给大家介绍了关于mybatis-plus实现自定义SQL、多表查询与多表分页查询语句的相关资料,需要的朋友可以参考下
    2022-09-09
  • Spring复杂对象创建的方式小结

    Spring复杂对象创建的方式小结

    这篇文章主要介绍了Spring复杂对象创建的三种方式,现在使用Spring如何创建这种类型的对象?Spring中提供了三种方法来创建复杂对象,需要的朋友可以参考下
    2022-01-01
  • Springboot整合Redis实现超卖问题还原和流程分析(分布式锁)

    Springboot整合Redis实现超卖问题还原和流程分析(分布式锁)

    最近在研究超卖的项目,写一段简单正常的超卖逻辑代码,多个用户同时操作同一段数据出现问题,纠结该如何处理呢?下面小编给大家带来了Springboot整合Redis实现超卖问题还原和流程分析,感兴趣的朋友一起看看吧
    2021-10-10
  • Java实现检查多个时间段是否有重合

    Java实现检查多个时间段是否有重合

    这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • SpringBoot实现动态配置及项目打包部署上线功能

    SpringBoot实现动态配置及项目打包部署上线功能

    本文讲解的是如何使用Spring动态配置文件,实现不同环境不同配置,灵活切换配置文件;以及讲述了如何使用 Maven 打包,然后上传至Linux服务器进行部署,对SpringBoot打包部署上线过程感兴趣的朋友一起看看吧
    2022-10-10
  • Java编程数组中最大子矩阵简便解法实现代码

    Java编程数组中最大子矩阵简便解法实现代码

    这篇文章主要介绍了Java编程数组中最大子矩阵简便解法实现代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Spring Boot集成Redis实现缓存机制(从零开始学Spring Boot)

    Spring Boot集成Redis实现缓存机制(从零开始学Spring Boot)

    这篇文章主要介绍了Spring Boot集成Redis实现缓存机制(从零开始学Spring Boot),需要的朋友可以参考下
    2017-04-04
  • SpringCloudGateway开发过程解析

    SpringCloudGateway开发过程解析

    这篇文章主要介绍了SpringCloudGateway开发过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 基于Docker的K8s(Kubernetes)集群部署方案

    基于Docker的K8s(Kubernetes)集群部署方案

    这篇文章主要介绍了基于Docker的K8s(Kubernetes)集群部署方案,文中介绍了安装k8s的可视化界面的相关操作,需要的朋友可以参考下
    2024-01-01
  • JAVA纯代码导出PDF文件实现方式

    JAVA纯代码导出PDF文件实现方式

    本文介绍了作者通过突发奇想发布了生成PDF的博客,最初,作者通过将Word文件转换为PDF文件实现导出PDF功能,但效果不尽如人意,后来,作者尝试直接生成PDF文件,并修复了生成PDF时出现的小瑕疵,通过导入依赖、下载接口和下载方法的实现
    2025-01-01

最新评论