首页 > 作文

使用LambdaQueryWrapper动态加过滤条件 动态Lambda

更新时间:2023-04-04 13:46:28 阅读: 评论:0

目录
lambdaquerywrapper动态加过滤条件 动态lambdamybatis-plus querywrapper lambdaquerywrapper

lambdaquerywrapper动态加过滤条件 动态lambda

1、遇到这样的需求,在barvice类记梁任公先生的一次演讲中处理数据权限,子类可能使用querywrapper或者lambdaquerywrapper调用ba类的方法进行查询。

2、可以拿到的:po的类,数据权限属性的属性名(是固定的)

直接上代码:

  /**     * 可序列化     */    private static final int flag_rializable = 1;  //获取当前登录人权限 integer cretlevel = geturcretlevel();        if(cretlevel!=null){            sfunction func = null;            final methodhandles.lookup lookup = methodhandles.lookup();            //po的返回integer的一个方法            methodtype methodtype = methodtype.methodtype(integer.class, entityclass);            final callsite site;            try {                //方法名叫做:getcretlevel  转换为 sfunction function interface对象                site = lambdametafactory.altmetafactory(lookup,                        "invoke",                        methodtype.methodtype(sfunction.class),                        methodtype,                        lookup.findvirtual(entityclass, "getcretlevel", methodtype.methodtype(integer.class)),                        methodtype,flag_rializable);                func = (sfunction) site.gettarget().invokeexact();                //数据小于这个级别的都查出来                querywrapper.le(func,cretlevel);            } catch (throwable e) {                log.error("获取getcretlevel方法错误",e);            }        }

mybatis-plus querywrapper lambdaquerywrapper

contracttemplate::gettemplatecode 转为对应的字段

lambdaquerywrapper<someclass> objectlambdaquerywrapper = wrappers.lambdaquery();    objectlambdaquerywrapper.eq(archdto.gettemplatecode() != null, contracttemplate::gettemplatecode, archdto.gettemplatecode());    ipage<someclass> page = page(mybatisplusutil.tpageparams(pageno, pagesize), objectlambdaquerywrapper);   return page

querywrapper

querywrapper<someclass> querywrapper = wrappers.query();    querywrapper.eq(archdto.gettemplatecode() != null, templateconst.col_template_code, archdto.gettemplatecode())        .ge(archdto.getstartdate() != null, templateconst.col_create_time, archdto.getstartdate())        .lt(archdto.getenddate() != null, templateconst.col_create_time, dateutils.adddays(archdto.getenddate(), 1))        .eq(archdto.getcontractcategoryid() != null, templateconst.col_category_id, archdto.getcontractcategoryid())        .and(i -> i.like(te玉米须的药用mplateconst.col_template_name, archdto.getkeyword()).or().like(templateconst.col_description, archdto.getkeyword()))        .eq(archdto.getis_enabled() != null, templateconst.col_is_enabled, archdto.getis_enabled())        // 未标志删除的数据        .eq(commonconst.dbcolname.del_flag, commonconst.inabled.enabled.getcode())        .orderbydesc(templateconst.col_create_time)        ;    ipage<contracttemplate> page = pag开车时听的英文歌e(mybatisplusutil.tpageparams(pageno, pagesize),奇数和偶数的概念 querywrapper);    return mybatisplusutil.parpagedto(page);
爱国手抄报图片

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 13:46:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/cd2d2dc100d78f63b6acc183daba2bc3.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:使用LambdaQueryWrapper动态加过滤条件 动态Lambda.doc

本文 PDF 下载地址:使用LambdaQueryWrapper动态加过滤条件 动态Lambda.pdf

标签:动态   数据   方法   玉米须
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图