溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mybatis-Plus查詢怎么排除標識字段

發布時間:2021-06-21 13:52:22 來源:億速云 閱讀:987 作者:chen 欄目:開發技術

本篇內容主要講解“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);

此時查看控制臺打印結果:

Mybatis-Plus查詢怎么排除標識字段

@TableField(select = false)該注解對于自定義方法查詢失效了,怎么做呢?加限定條件

 // 查詢年齡大于xxx歲的
 List<User> userList = userMapper.mySelectList(Wrappers.<User>lambdaQuery()
          .gt(User::getAge,1).eq(User::getIsDeleted,0));

Mybatis-Plus查詢怎么排除標識字段

三、@TableField注解其他用法

Mybatis-plus使用注解 @TableField(exist = false) 注明非數據庫字段屬性

@TableField(exist = false)

注解加載bean屬性上,表示當前屬性不是數據庫的字段,但在項目中必須使用,這樣在新增等使用bean的時候,mybatis-plus就會忽略這個,不會報錯

Mybatis-Plus排除自定義字段不查詢

需求原因

由于數據庫表設計為一張為組表

一張為對應組下的參數表

在查詢數據時想要在查詢組表的同時吧對應組下的數據頁同時查出來

所以在組實體類下增加了一個對應的參數來接受對應的組數據

Mybatis-Plus查詢怎么排除標識字段

錯誤截圖

Mybatis-Plus查詢怎么排除標識字段

錯誤分析

根據查詢語句來看

條件查詢默認把所有字段都查出來了

但由于自定義的字段在數據庫中不存在,所以報錯

嘗試

這里最大的問題就是如何把自定義字段排除掉,在網上搜了一圈,

最后才在Mybatis-plus的官方文檔里發現

@TableFiled有一個exist屬性,是用來定義字段是否為數據庫表字段的。。。。

Mybatis-Plus查詢怎么排除標識字段

Mybatis-Plus查詢怎么排除標識字段

于是把該屬性加上

Mybatis-Plus查詢怎么排除標識字段

重新運行

Mybatis-Plus查詢怎么排除標識字段

完美解決!

到此,相信大家對“Mybatis-Plus查詢怎么排除標識字段”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女