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

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

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

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

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

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

直接上代碼:

  /**
     * 可序列化
     */
    private static final int FLAG_SERIALIZABLE = 1;  
//獲取當(dāng)前登錄人權(quán)限
 Integer secretLevel = getUserSecretLevel();
        if(secretLevel!=null){
            SFunction func = null;
            final MethodHandles.Lookup lookup = MethodHandles.lookup();
            //po的返回Integer的一個(gè)方法
            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ù)小于這個(gè)級別的都查出來
                queryWrapper.le(func,secretLevel);
            } catch (Throwable e) {
                log.error("獲取getSecretLevel方法錯(cuò)誤",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())
? ? ? ? ? ? ? ? // 未標(biāo)志刪除的數(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);

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

相關(guān)文章

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

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

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

    Java基礎(chǔ)強(qiáng)化訓(xùn)練輸入錯(cuò)誤即結(jié)束進(jìn)程

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

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

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

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

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

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

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

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

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

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

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

    JDBC示例代碼

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

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

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

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

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

最新評論

左权县| 甘洛县| 鞍山市| 行唐县| 海丰县| 塔城市| 宝山区| 星子县| 眉山市| 蒲江县| 棋牌| 凤城市| 南宁市| 洪江市| 星子县| 金阳县| 儋州市| 安陆市| 东平县| 滨州市| 蛟河市| 桂林市| 普陀区| 河北省| 旌德县| 山丹县| 永胜县| 玉林市| 屏山县| 桓台县| 廊坊市| 沁源县| 雅江县| 磐石市| 丹棱县| 芜湖市| 福州市| 清水县| 濮阳县| 北京市| 沂水县|