最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用LambdaQueryWrapper動態(tài)加過濾條件?動態(tài)Lambda

 更新時間:2022年01月11日 08:58:14   作者:陜西小伙伴網(wǎng)絡(luò)科技有限公司  
這篇文章主要介紹了使用LambdaQueryWrapper動態(tài)加過濾條件?動態(tài)Lambda,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。

LambdaQueryWrapper動態(tài)加過濾條件 動態(tài)Lambda

1、遇到這樣的需求,在baseservice類中處理數(shù)據(jù)權(quán)限,子類可能使用QueryWrapper或者LambdaQueryWrapper調(diào)用base類的方法進行查詢。

2、可以拿到的:PO的類,數(shù)據(jù)權(quán)限屬性的屬性名(是固定的)

直接上代碼:

  /**
     * 可序列化
     */
    private static final int FLAG_SERIALIZABLE = 1;  
//獲取當前登錄人權(quán)限
 Integer secretLevel = getUserSecretLevel();
        if(secretLevel!=null){
            SFunction func = null;
            final MethodHandles.Lookup lookup = MethodHandles.lookup();
            //po的返回Integer的一個方法
            MethodType methodType = MethodType.methodType(Integer.class, entityClass);
            final CallSite site;
            try {
                //方法名叫做:getSecretLevel  轉(zhuǎn)換為 SFunction function interface對象
                site = LambdaMetafactory.altMetafactory(lookup,
                        "invoke",
                        MethodType.methodType(SFunction.class),
                        methodType,
                        lookup.findVirtual(entityClass, "getSecretLevel", MethodType.methodType(Integer.class)),
                        methodType,FLAG_SERIALIZABLE);
                func = (SFunction) site.getTarget().invokeExact();
                //數(shù)據(jù)小于這個級別的都查出來
                queryWrapper.le(func,secretLevel);
            } catch (Throwable e) {
                log.error("獲取getSecretLevel方法錯誤",e);
            }
        }

mybatis-plus QueryWrapper LambdaQueryWrapper

ContractTemplate::getTemplateCode 轉(zhuǎn)為對應(yīng)的字段

LambdaQueryWrapper<SomeClass> objectLambdaQueryWrapper = Wrappers.lambdaQuery();
? ? ? ? objectLambdaQueryWrapper.eq(searchDto.getTemplateCode() != null, ContractTemplate::getTemplateCode, searchDto.getTemplateCode());

? ? ? ? IPage<SomeClass> page = page(MybatisPlusUtil.setPageParams(pageNo, pageSize), objectLambdaQueryWrapper);
? ? ? return page

QueryWrapper

QueryWrapper<SomeClass> queryWrapper = Wrappers.query();
? ? ? ? queryWrapper.eq(searchDto.getTemplateCode() != null, TemplateConst.COL_TEMPLATE_CODE, searchDto.getTemplateCode())
? ? ? ? ? ? ? ? .ge(searchDto.getStartDate() != null, TemplateConst.COL_CREATE_TIME, searchDto.getStartDate())
? ? ? ? ? ? ? ? .lt(searchDto.getEndDate() != null, TemplateConst.COL_CREATE_TIME, DateUtils.addDays(searchDto.getEndDate(), 1))
? ? ? ? ? ? ? ? .eq(searchDto.getContractCategoryId() != null, TemplateConst.COL_CATEGORY_ID, searchDto.getContractCategoryId())
? ? ? ? ? ? ? ? .and(i -> i.like(TemplateConst.COL_TEMPLATE_NAME, searchDto.getKeyword()).or().like(TemplateConst.COL_DESCRIPTION, searchDto.getKeyword()))
? ? ? ? ? ? ? ? .eq(searchDto.getIs_enabled() != null, TemplateConst.COL_IS_ENABLED, searchDto.getIs_enabled())
? ? ? ? ? ? ? ? // 未標志刪除的數(shù)據(jù)
? ? ? ? ? ? ? ? .eq(CommonConst.DBColName.DEL_FLAG, CommonConst.IsEnabled.ENABLED.getCode())
? ? ? ? ? ? ? ? .orderByDesc(TemplateConst.COL_CREATE_TIME)
? ? ? ? ? ? ? ? ;
? ? ? ? IPage<ContractTemplate> page = page(MybatisPlusUtil.setPageParams(pageNo, pageSize), queryWrapper);
? ? ? ? return MybatisPlusUtil.parsePageDTO(page);

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java判斷時間段內(nèi)文件是否更新的方法

    Java判斷時間段內(nèi)文件是否更新的方法

    這篇文章主要介紹了Java判斷時間段內(nèi)文件是否更新的方法,通過實例形式講述了定時器、類加載器及線程等方法實現(xiàn)判斷文件更新的功能,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • Java基礎(chǔ)強化訓(xùn)練輸入錯誤即結(jié)束進程

    Java基礎(chǔ)強化訓(xùn)練輸入錯誤即結(jié)束進程

    本文主要介紹了Java編程的基礎(chǔ)知識強化應(yīng)用,文中實例涉及到了許多基礎(chǔ)知識,new對象,控制臺輸入,if語句等。很實用,需要的朋友可以參考下
    2017-09-09
  • 關(guān)于HashSet與HashMap的區(qū)別及說明

    關(guān)于HashSet與HashMap的區(qū)別及說明

    這篇文章主要介紹了關(guān)于HashSet與HashMap的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java?Process中waitFor()的問題詳解

    Java?Process中waitFor()的問題詳解

    這篇文章主要給大家介紹了關(guān)于Java?Process中waitFor()問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-12-12
  • SpringBoot實現(xiàn)單元測試示例詳解

    SpringBoot實現(xiàn)單元測試示例詳解

    單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。這篇文章主要為大家介紹了C語言實現(xiàn)單元測試的方法,需要的可以參考一下
    2022-11-11
  • RocketMQ消息過濾與查詢的實現(xiàn)

    RocketMQ消息過濾與查詢的實現(xiàn)

    這篇文章主要介紹了RocketMQ消息過濾與查詢的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot可視化監(jiān)控的具體應(yīng)用

    SpringBoot可視化監(jiān)控的具體應(yīng)用

    最近越發(fā)覺得,任何一個系統(tǒng)上線,運維監(jiān)控都太重要了,本文介紹了SpringBoot可視化監(jiān)控的具體應(yīng)用,分享給大家,有興趣的同學(xué)可以參考一下
    2021-06-06
  • JDBC示例代碼

    JDBC示例代碼

    本教程提供了如何創(chuàng)建一個簡單的JDBC應(yīng)用程序的示例。演示如何打開一個數(shù)據(jù)庫連接,執(zhí)行SQL查詢,并顯示結(jié)果
    2014-03-03
  • 在IDEA中 實現(xiàn)給main方法附帶參數(shù)的操作

    在IDEA中 實現(xiàn)給main方法附帶參數(shù)的操作

    這篇文章主要介紹了在IDEA中 實現(xiàn)給main方法附帶參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 你的Idea還有BUG嗎不妨試試另一個開發(fā)神器

    你的Idea還有BUG嗎不妨試試另一個開發(fā)神器

    Spring Tool Suite(STS)就是一個基于Eclipse的開發(fā)環(huán)境, 用于開發(fā)Spring應(yīng)用程序。本文給大家給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-12-12

最新評論

稻城县| 吴桥县| 武陟县| 综艺| 旺苍县| 玛曲县| 临湘市| 湖南省| 鄂尔多斯市| 海城市| 东兴市| 凤阳县| 图木舒克市| 大关县| 柏乡县| 云南省| 新闻| 上虞市| 江安县| 静乐县| 怀远县| 西昌市| 左贡县| 兰坪| 通辽市| 岳西县| 凤冈县| 遵义市| 拜城县| 格尔木市| 鄂托克旗| 汾西县| 敖汉旗| 博野县| 邢台市| 海城市| 敖汉旗| 大厂| 剑川县| 望城县| 平潭县|