本篇內容主要講解“Mybatis-Plus查詢怎么排除標識字段”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Mybatis-Plus查詢怎么排除標識字段”吧!
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
比如:自定義,查詢年齡大于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);此時查看控制臺打印結果:

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

Mybatis-plus使用注解 @TableField(exist = false) 注明非數據庫字段屬性
@TableField(exist = false)
注解加載bean屬性上,表示當前屬性不是數據庫的字段,但在項目中必須使用,這樣在新增等使用bean的時候,mybatis-plus就會忽略這個,不會報錯
由于數據庫表設計為一張為組表
一張為對應組下的參數表
在查詢數據時想要在查詢組表的同時吧對應組下的數據頁同時查出來
所以在組實體類下增加了一個對應的參數來接受對應的組數據


根據查詢語句來看
條件查詢默認把所有字段都查出來了
但由于自定義的字段在數據庫中不存在,所以報錯
這里最大的問題就是如何把自定義字段排除掉,在網上搜了一圈,
最后才在Mybatis-plus的官方文檔里發現
@TableFiled有一個exist屬性,是用來定義字段是否為數據庫表字段的。。。。


于是把該屬性加上

重新運行

完美解決!
到此,相信大家對“Mybatis-Plus查詢怎么排除標識字段”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。