Mybatis-Plus查詢中如何排除標(biāo)識(shí)字段
一、查詢中排除標(biāo)識(shí)字段
1.1 測(cè)試查詢
@Test
public void findAllTest() {
List<User> userList = userMapper.selectList(null);
userList.forEach(System.out::println);
}
1.2 實(shí)體類字段不添加@TableField注解
//邏輯刪除注解(0 未刪除 1 已刪除) @TableLogic /*@TableField(select = false)*/ private Boolean isDeleted;
在沒有加注解的情況下,is_deleted在查詢中存在
Preparing: SELECT id,name,email,age,status,is_deleted,version FROM user WHERE is_deleted=0
1.3 實(shí)體類字段添加@TableField注解
//邏輯刪除注解(0 未刪除 1 已刪除) @TableLogic @TableField(select = false) private Boolean isDeleted;
在加注解的情況下,is_deleted在查詢中不存在
Preparing: SELECT id,name,email,age,status,version FROM user WHERE is_deleted=0
二、查詢中排除標(biāo)識(shí)字段,自定義方法時(shí)需要注意
比如:自定義,查詢年齡大于xxx歲的,返回list集合
@Test
public void mySelectTest() {
// 查詢年齡大于xxx歲的
List<User> userList = userMapper.mySelectList(Wrappers.<User>lambdaQuery()
.gt(User::getAge,1));
userList.forEach(System.out::println);
}
@Select("select * from user ${ew.customSqlSegment}")
List<User> mySelectList(@Param(Constants.WRAPPER) Wrapper<User> wrapper);
此時(shí)查看控制臺(tái)打印結(jié)果:

@TableField(select = false)該注解對(duì)于自定義方法查詢失效了,怎么做呢?加限定條件
// 查詢年齡大于xxx歲的
List<User> userList = userMapper.mySelectList(Wrappers.<User>lambdaQuery()
.gt(User::getAge,1).eq(User::getIsDeleted,0));

三、@TableField注解其他用法
Mybatis-plus使用注解 @TableField(exist = false) 注明非數(shù)據(jù)庫(kù)字段屬性
@TableField(exist = false)
注解加載bean屬性上,表示當(dāng)前屬性不是數(shù)據(jù)庫(kù)的字段,但在項(xiàng)目中必須使用,這樣在新增等使用bean的時(shí)候,mybatis-plus就會(huì)忽略這個(gè),不會(huì)報(bào)錯(cuò)
Mybatis-Plus排除自定義字段不查詢
需求原因
由于數(shù)據(jù)庫(kù)表設(shè)計(jì)為一張為組表
一張為對(duì)應(yīng)組下的參數(shù)表
在查詢數(shù)據(jù)時(shí)想要在查詢組表的同時(shí)吧對(duì)應(yīng)組下的數(shù)據(jù)頁(yè)同時(shí)查出來(lái)
所以在組實(shí)體類下增加了一個(gè)對(duì)應(yīng)的參數(shù)來(lái)接受對(duì)應(yīng)的組數(shù)據(jù)

錯(cuò)誤截圖

錯(cuò)誤分析
根據(jù)查詢語(yǔ)句來(lái)看
條件查詢默認(rèn)把所有字段都查出來(lái)了
但由于自定義的字段在數(shù)據(jù)庫(kù)中不存在,所以報(bào)錯(cuò)
嘗試
這里最大的問題就是如何把自定義字段排除掉,在網(wǎng)上搜了一圈,
最后才在Mybatis-plus的官方文檔里發(fā)現(xiàn)
@TableFiled有一個(gè)exist屬性,是用來(lái)定義字段是否為數(shù)據(jù)庫(kù)表字段的。。。。


于是把該屬性加上

重新運(yùn)行

完美解決!
結(jié)論
有問題下次先看官方文檔吧,以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家
相關(guān)文章
Springboot項(xiàng)目快速實(shí)現(xiàn)Aop功能
這篇文章主要介紹了Springboot項(xiàng)目如何快速實(shí)現(xiàn)Aop功能,對(duì)此方面感興趣的小伙伴可以詳細(xì)參考閱讀本文,本文有一定的參考價(jià)值2023-03-03
Spring Boot 整合 Druid 并開啟監(jiān)控的操作方法
本文介紹了如何在SpringBoot項(xiàng)目中引入和配置Druid數(shù)據(jù)庫(kù)連接池,并開啟其監(jiān)控功能,通過(guò)添加依賴、配置數(shù)據(jù)源、開啟監(jiān)控、自定義配置以及訪問監(jiān)控頁(yè)面,開發(fā)者可以有效提高數(shù)據(jù)庫(kù)訪問效率并監(jiān)控連接池狀態(tài),感興趣的朋友跟隨小編一起看看吧2025-01-01
JAVA PDF操作之實(shí)現(xiàn)截取N頁(yè)和多個(gè)PDF合并
這篇文章主要為大家詳細(xì)介紹了java關(guān)于PDF的一些操作,例如截取N頁(yè)并生成新文件,轉(zhuǎn)圖片以及多個(gè)PDF合并,文中的示例代碼講解詳細(xì),感興趣的可以了解下2025-01-01
Java實(shí)現(xiàn)自動(dòng)壓縮文件并加密的方法示例
這篇文章主要介紹了Java實(shí)現(xiàn)自動(dòng)壓縮文件并加密的方法,涉及java針對(duì)文件進(jìn)行zip壓縮并加密的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
一文搞懂并學(xué)會(huì)使用SpringBoot的Actuator運(yùn)行狀態(tài)監(jiān)控組件的詳細(xì)教程
這篇文章主要介紹了一文搞懂并學(xué)會(huì)使用SpringBoot的Actuator運(yùn)行狀態(tài)監(jiān)控組件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
基于mybatis中test條件中單引號(hào)雙引號(hào)的問題
這篇文章主要介紹了基于mybatis中test條件中單引號(hào)雙引號(hào)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
java使用歸并刪除法刪除二叉樹中節(jié)點(diǎn)的方法
這篇文章主要介紹了java使用歸并刪除法刪除二叉樹中節(jié)點(diǎn)的方法,實(shí)例分析了java二叉樹算法的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05

