Mybatis-Plus查詢中如何排除標(biāo)識字段
一、查詢中排除標(biāo)識字段
1.1 測試查詢
@Test public void findAllTest() { List<User> userList = userMapper.selectList(null); userList.forEach(System.out::println); }
1.2 實體類字段不添加@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 實體類字段添加@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)識字段,自定義方法時需要注意
比如:自定義,查詢年齡大于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);
此時查看控制臺打印結(jié)果:
@TableField(select = false)該注解對于自定義方法查詢失效了,怎么做呢?加限定條件
// 查詢年齡大于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ù)庫字段屬性
@TableField(exist = false)
注解加載bean屬性上,表示當(dāng)前屬性不是數(shù)據(jù)庫的字段,但在項目中必須使用,這樣在新增等使用bean的時候,mybatis-plus就會忽略這個,不會報錯
Mybatis-Plus排除自定義字段不查詢
需求原因
由于數(shù)據(jù)庫表設(shè)計為一張為組表
一張為對應(yīng)組下的參數(shù)表
在查詢數(shù)據(jù)時想要在查詢組表的同時吧對應(yīng)組下的數(shù)據(jù)頁同時查出來
所以在組實體類下增加了一個對應(yīng)的參數(shù)來接受對應(yīng)的組數(shù)據(jù)
錯誤截圖
錯誤分析
根據(jù)查詢語句來看
條件查詢默認(rèn)把所有字段都查出來了
但由于自定義的字段在數(shù)據(jù)庫中不存在,所以報錯
嘗試
這里最大的問題就是如何把自定義字段排除掉,在網(wǎng)上搜了一圈,
最后才在Mybatis-plus的官方文檔里發(fā)現(xiàn)
@TableFiled有一個exist屬性,是用來定義字段是否為數(shù)據(jù)庫表字段的。。。。
于是把該屬性加上
重新運行
完美解決!
結(jié)論
有問題下次先看官方文檔吧,以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家
相關(guān)文章
Java實現(xiàn)輸入流轉(zhuǎn)化為String
這篇文章主要介紹了Java實現(xiàn)輸入流轉(zhuǎn)化為String的相關(guān)資料,需要的朋友可以參考下2016-12-12JAVA實現(xiàn)Excel和PDF上下標(biāo)的操作代碼
這篇文章主要介紹了JAVA實現(xiàn)Excel和PDF上下標(biāo),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09SpringBoot前后端交互、全局異常處理之后端異常信息拋到前端顯示彈窗
Spring Boot是一個用于構(gòu)建獨立的、基于生產(chǎn)級別的Spring應(yīng)用程序的框架,下面這篇文章主要給大家介紹了關(guān)于SpringBoot前后端交互、全局異常處理之后端異常信息拋到前端顯示彈窗的相關(guān)資料,需要的朋友可以參考下2024-08-08maven打包插件的使用(maven-compiler-plugin、maven-dependency-plugin、m
本文主要介紹了maven打包插件的使用(maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06