MyBatis-Plus之@TableField的用法解讀
更新時間:2023年11月04日 10:42:02 作者:TM_enn
這篇文章主要介紹了MyBatis-Plus之@TableField的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
@TableField
屬性 | 類型 | 描述 |
---|---|---|
value | String | 數(shù)據(jù)庫字段名 |
exist | boolean | exist = false 表示該屬性不是數(shù)據(jù)庫字段,新增等使用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 (該屬性優(yōu)先級高于 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 | 指定小數(shù)點后保留的位數(shù) |
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,數(shù)據(jù)庫的值就會更新為null */ @TableField(updateStrategy = FieldStrategy.IGNORED) private String name;
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java編程rabbitMQ實現(xiàn)消息的收發(fā)
RabbitMQ是一個在AMQP基礎上完成的,可復用的企業(yè)消息系統(tǒng),本文通過實例來給大家分享通過操作rabbitMQ實現(xiàn)消息的收發(fā),感興趣的朋友可以參考下。2017-09-09Spring配置多數(shù)據(jù)源導致事物無法回滾問題
這篇文章主要介紹了Spring配置多數(shù)據(jù)源導致事物無法回滾問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Java Synchronized字節(jié)碼層分析體驗
這篇文章主要介紹了Java Synchronized字節(jié)碼層分析,synchronized關鍵字解決了多個線程之間的資源同步性,synchronized關鍵字保證了它修飾的方法或者代碼塊任意時刻只有一個線程在訪問2023-04-04使用Springboot整合GridFS實現(xiàn)文件操作
這篇文章主要介紹了使用Springboot整合GridFS實現(xiàn)文件操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10詳解Struts2中json 相互引用死循環(huán)解決辦法
本篇文章主要介紹詳解Struts2中json 相互引用死循環(huán)解決辦法,具有一定的參考價值,有興趣的可以了解一下。2017-01-01