MyBatis-Plus @TableField详解

news/2024/11/30 7:49:13/

@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则不更新该字段
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 、updateStrategywhereStrategy 可以聚合操作

http://www.ppmy.cn/news/59020.html

相关文章

prometheus实战之二:使用常见指标

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文是《prometheus实战》系列的第二篇&#xff0c;在《prometheus实战之一&#xff1a;用ansible部署》一文咱们部署了prometheus服务&#xff0c…

JAVA常用的异步处理方法总结

前言 在java项目开发过程中经常会遇到比较耗时的任务&#xff0c;通常是将这些任务做成异步操作&#xff0c;在java中实现异步操作有很多方法&#xff0c;本文主要总结一些常用的处理方法。为了简化&#xff0c;我们就拿一个实际的案例&#xff0c;再用每种方法去实现&#xf…

ESP32 ESP-Rainmaker 本地点灯控制Demo测试

基于ESP-Rainmaker 本地点灯控制Demo测试 &#x1f33f;ESP-Rainmaker项目地址&#xff1a;https://github.com/espressif/esp-rainmaker/tree/master&#x1f530;官方所提供的ESP-Rainmaker案例提供了2中配网模式&#xff1a;BLE蓝牙配网和 WIFI AP配网。&#xff08;本文提供…

Linux网卡没有eth0显示ens33原因以及解决办法

原因 首先说明一下eth0 与 ens33的关系&#xff1a; 目前的主流网卡为使用以太网络协定所开发出来的以太网卡&#xff08;Ethernet),因此我们Linux就称呼这种网络接口为ethN(N为数字)。举个栗子&#xff1a;就是说主机上面有一张以太网卡&#xff0c;因此主机的网络接口就是et…

HCIA-RS实验-路由配置-配置RIPv1 和RIPv2

书接上回。。。这篇主要以实验为主&#xff0c;实验的主要目标也是理解RIP路由协议的防环机制 &#xff0c;掌握RIPv1和v2的配置方法&#xff1b;大致拓扑图如下&#xff1a; 拓扑图&#xff1a; 配置对应的IP&#xff1a; R1.2.3 测试R1与R2间的连通性。 配置IP后测试连通性…

Django项目页面样式如何“传给”客户端浏览器

前言 django项目在视图函数中借助render函数可以返回HTML页面&#xff0c;但是HTML页面中如果引入了外部CSS文件或者JavaScript文件在浏览器页面无法加载&#xff0c;因此就必须有一种方式能够将HTML文档中引入的外部文件能够在客户端浏览器上加载&#xff0c;这种方式就是配置…

跨越屏幕:桌面PC端的多端开发框架介绍

目前&#xff0c;随着互联网和移动互联网的发展&#xff0c;多端开发框架已经成为越来越多开发者更好的选择。主要有以下几个方面的前景&#xff1a; 跨平台开发需求不断增加&#xff1a;由于不同平台和设备的差异性&#xff0c;开发人员需要使用不同的编程语言和开发工具来为各…

HTTP的method方法 GET POST PUT DELETE HEAD OPTIONS CONNECT PATCH TRACE

HTTP的method方法 GET POST PUT DELETE HEAD OPTIONS CONNECT PATCH TRACE GET 向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据&#xff0c;而不应当被用于产生“副作用”的操作中&#xff0c;例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意…