MyBatis-Plus之@TableField的用法解讀
@TableField
屬性 | 類(lèi)型 | 描述 |
---|---|---|
value | String | 數(shù)據(jù)庫(kù)字段名 |
exist | boolean | exist = false 表示該屬性不是數(shù)據(jù)庫(kù)字段,新增等使用bean的時(shí)候,mybatis-plus就會(huì)忽略這個(gè),不會(huì)報(bào)錯(cuò) |
condition | String | 預(yù)處理 where 實(shí)體查詢比較條件,有值設(shè)置則按設(shè)置的值為準(zhǔn),沒(méi)有則為默認(rèn)全局的 %s=#{%s}。@TableField(condition = SqlCondition.LIKE)輸出SQL為: select 表 where name LIEK CONCAT('%',值,'%') |
update | String | 預(yù)處理 update set 部分注入,例如:當(dāng)在age字段上注解update=“%s+1” 表示更新時(shí)會(huì) set age=age+1 (該屬性優(yōu)先級(jí)高于 el 屬性) |
insertStrategy | FieldStrategy | Mybatis-plus insert對(duì)字段的操作 |
updateStrategy | FieldStrategy | Mybatis-plus update對(duì)字段的操作 |
whereStrategy | FieldStrategy | Mybatis-plus where條件對(duì)字段的操作 |
fill | FieldFill | 字段自動(dòng)填充策略 |
select | boolean | @TableField(select = false) 查詢時(shí),則不返回該字段的值 。 |
keepGlobalFormat | boolean | 是否保持使用全局的 format 進(jìn)行處理 |
jdbcType | JdbcType | JDBC 類(lèi)型 (該默認(rèn)值不代表會(huì)按照該值生效) |
typeHandler | Class<? extends TypeHandler> | 類(lèi)型處理器 (該默認(rèn)值不代表會(huì)按照該值生效) |
numericScale | String | 指定小數(shù)點(diǎn)后保留的位數(shù) |
FieldStrategy
值 | 描述 |
---|---|
IGNORED | 忽略判斷,該字段值不論是什么,都進(jìn)行更新 |
NOT_NULL | (默認(rèn))不為null則更新,也就是字段值為null則不生成到sql中不更新該字段,如果字段值為""(空字符串)也是會(huì)更新的 |
NOT_EMPTY | 不為空則更新,注意該字段值為null或?yàn)?quot;"(空字符串)都不會(huì)更新 |
DEFAULT | 默追隨全局配置,和IGNORED 中的配置保持一致 |
NEVER | 不做更新操作,該字段值不論是什么,都不進(jìn)行更新 |
FieldFill
值 | 描述 |
---|---|
DEFAULT | 默認(rèn)不處理 |
INSERT | 插入時(shí)填充字段 |
UPDATE | 更新時(shí)填充字段 |
INSERT_UPDATE | 插入和更新時(shí)填充字段 |
相關(guān)例子
例子 | 描述 |
---|---|
@TableField(select = false) | 不返回字段的值,但單獨(dú)查詢?cè)撟侄尉涂梢苑祷刂担琭reezerDevice.selectList(Wrappers.<FreezerDevice>lambdaQuery().select(FreezerDevice::getChannel)) |
@TableField(insertStrategy = FieldStrategy.IGNORED) | Mybatis-plus insert 會(huì)忽略該字段值的判斷 |
@TableField(updateStrategy = FieldStrategy.IGNORED) | Mybatis-plus update 會(huì)忽略該字段值的判斷 |
@TableField(whereStrategy = FieldStrategy.IGNORED) | Mybatis-plus where條件中會(huì)忽略該字段值的判斷 |
@TableField(insertStrategy = FieldStrategy.IGNORED,updateStrategy = FieldStrategy.IGNORED,whereStrategy = FieldStrategy.IGNORED) | insertStrategy 、updateStrategy、whereStrategy 可以聚合操作 |
/** * 更新時(shí)如果字段為null,數(shù)據(jù)庫(kù)的值就會(huì)更新為null */ @TableField(updateStrategy = FieldStrategy.IGNORED) private String name;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java編程rabbitMQ實(shí)現(xiàn)消息的收發(fā)
RabbitMQ是一個(gè)在AMQP基礎(chǔ)上完成的,可復(fù)用的企業(yè)消息系統(tǒng),本文通過(guò)實(shí)例來(lái)給大家分享通過(guò)操作rabbitMQ實(shí)現(xiàn)消息的收發(fā),感興趣的朋友可以參考下。2017-09-09Java字節(jié)流 從文件輸入輸出到文件過(guò)程解析
這篇文章主要介紹了Java字節(jié)流 從文件輸入 輸出到文件過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09Spring配置多數(shù)據(jù)源導(dǎo)致事物無(wú)法回滾問(wèn)題
這篇文章主要介紹了Spring配置多數(shù)據(jù)源導(dǎo)致事物無(wú)法回滾問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01利用Java實(shí)現(xiàn)天氣預(yù)報(bào)播報(bào)功能
這篇文章主要為大家介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)天氣預(yù)報(bào)播報(bào)功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下2022-06-06Java Synchronized字節(jié)碼層分析體驗(yàn)
這篇文章主要介紹了Java Synchronized字節(jié)碼層分析,synchronized關(guān)鍵字解決了多個(gè)線程之間的資源同步性,synchronized關(guān)鍵字保證了它修飾的方法或者代碼塊任意時(shí)刻只有一個(gè)線程在訪問(wèn)2023-04-04使用Springboot整合GridFS實(shí)現(xiàn)文件操作
這篇文章主要介紹了使用Springboot整合GridFS實(shí)現(xiàn)文件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10詳解Struts2中json 相互引用死循環(huán)解決辦法
本篇文章主要介紹詳解Struts2中json 相互引用死循環(huán)解決辦法,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01Maven之導(dǎo)入thymeleaf依賴(lài)飄紅問(wèn)題及解決
這篇文章主要介紹了Maven之導(dǎo)入thymeleaf依賴(lài)飄紅問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Java實(shí)現(xiàn)大文件的分割與合并的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)大文件的分割與合并,以及分割后又再次合并操作,文中示例代碼講解詳細(xì),感興趣的可以了解一下2022-08-08