MyBatis and or使用列表控制or条件

这篇具有很好参考价值的文章主要介绍了MyBatis and or使用列表控制or条件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:最近项目需要,师傅可以查找订单,而师傅是指定可以服务2到3个区域,故需要使用到and, or条件的组合,以下记一下代码。

最重要的代码是:

1、构建List<Consumer<LambdaQueryWrapper<T>>> andConditions;

2、从列表中填好 andConditions使用 and, or;

3、queryWrapper使用and中使用for得到所有的条件。文章来源地址https://www.toymoban.com/news/detail-647205.html

// 通过staffId查找地域id
LambdaQueryWrapper<ServiceAreaStaff> areaQueryWrapper = new LambdaQueryWrapper<ServiceAreaStaff>().eq(ServiceAreaStaff::getStaffId, staff.getId());
List<ServiceAreaStaff> areasList = serviceAreaStaffMapper.selectList(areaQueryWrapper);
// 找到符合的订单

// 当前师傅只能看到服务范围内的订单数据
List<Consumer<LambdaQueryWrapper<Order>>> andConditions = new ArrayList<>();

List<Long> areas = new ArrayList<Long>();
for(ServiceAreaStaff area : areasList) {
       andConditions.add(wq -> wq.or().eq(Order::getServiceAreaId, area.getServiceAreaId()));
}

LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<Order>()
                    .and(true, wrapper -> {
                        for (Consumer<LambdaQueryWrapper<Order>> condition : andConditions) 
                        {
                            condition.accept(wrapper);
                        }
                    })
                    .orderByDesc(Order::getId);

到了这里,关于MyBatis and or使用列表控制or条件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MyBatis案例 | 使用映射配置文件实现CRUD操作——动态SQL优化条件查询

    本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址:🔥JavaWeb Java入门篇: 🔥Java基础学习篇 Java进阶学习篇(持续更新中):🔑Java进阶学习篇 本系列文章会将讲述有关

    2024年02月02日
    浏览(87)
  • Spring Boot学习随笔- 集成MyBatis-Plus(二)条件查询QueryWrapper、聚合函数的使用、Lambda条件查询

    学习视频:【编程不良人】Mybatis-Plus整合SpringBoot实战教程,提高的你开发效率,后端人员必备! 普通查询 条件构造器查询 【重要】 AbstractWrapper  是 MyBatis Plus 中的一个抽象类,用于构建 SQL 查询条件。定义了泛型  T 、 C  和  Children 。其中, T  表示实体类的类型, C  表示查

    2024年02月04日
    浏览(58)
  • Thinkphp6 的 where 查询条件 and 和 or 的 操作

    tp3.2 来说 or 或者and 的操作可以在一个数组中用_logic 来解决 $where = [\\\'id\\\'=1,\\\'name\\\'=\\\'小表\\\',\\\'_logic\\\'=\\\'or\\\']     但是tp6的不行。 $where1 = [\\\'id\\\'=1, \\\'name\\\'=\\\'小白\\\']; $where2 = [\\\'id\\\'=2, \\\'name\\\'=\\\'小黑\\\']; $where = [$where1, $where2,\\\'_logic\\\'=\\\'or\\\'] tp6的and 和 or 可以实现的方法比较多 已知:-where(A)-where(B) 俩个条件关

    2024年02月06日
    浏览(55)
  • SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法

    SQL的 AND 运算符用于根据多个条件筛选记录,确保所有条件都为TRUE才返回记录。下面是 AND 运算符的基本语法: column1 , column2 ,等是您要选择的列名称。 table_name 是您从中选择记录的表的名称。 condition1 , condition2 ,等是筛选记录的条件。 使用 AND 运算符,所有条件都必须为 TR

    2024年02月05日
    浏览(52)
  • Mybatis1.4 多条件查询

    我们经常会遇到如上图所示的多条件查询,将多条件查询的结果展示在下方的数据列表中。而我们做这个功能需要分析最终的SQL语句应该是什么样,思考两个问题 条件表达式 如何连接 条件字段 企业名称 和 品牌名称 需要进行模糊查询,所以条件应该是: 简单的分析后,我

    2024年02月10日
    浏览(38)
  • Mybatis-Plus(三)--Mybatis-Plus配置和条件构造器

    在MP中有大量的配置,其中有一部分是Mybatis原生的配置,另一部分是MP的配置,详情:https://mybatis.plus/config 【1】configLocation--自己单独的MyBatis配置的路径 SpringMVC的xml中写法: 【2】mapperLocations--MyBatis Mapper所对应的XML文件位置 如果你在Mapper中有自定义方法(XML中有自定义实现

    2024年02月15日
    浏览(64)
  • transaction 事务 开启 关闭 不使用 手动控制 spring springboot mybatis

    spring springboot mybatis 事务配置 Transactional的Propagation 开启事务 关闭事务_globalcoding 单元测试时,发现默认是使用事务。想要关闭事务,使用: 做单元测试的时候,发现默认是使用事务的。代码和日志如下: 日志: 通过日志发现,默认用了事务transaction,这会有一个现象,就是

    2024年02月03日
    浏览(44)
  • MyBatis-Plus条件查询问题解决

    问题描述 系统中有用户注册的功能,但是会出现重复注册的现象,代码中有做过重复校验,但是没有生效。 问题解决 首先排查数据生成时间点不同,相差时间有长有短,不是用户同时多次点击的原因,应该是用户这边不同时间重复多次注册导致的,但是程序中防止重复校验

    2024年02月16日
    浏览(47)
  • Mybatis mapper.xml 判断条件写法注意

    1.判断String是否为空 if test=\\\"stringParam != null and stringParam != \\\'\\\'\\\"/if 2.判断Integer是否大于0 判断等于  when test=\\\"item.mark == 1\\\"\\\" 3.判断List是否不为空 5.判断字符串是否等于特定字符(比如此处的user)

    2024年02月16日
    浏览(74)
  • MyBatis-Plus(三.Wrapper条件查询)

    Wrapper是Mybatis-plus中特有的 条件封装接口 也就是把 查询的条件 封装到Wrapper实现类中 它的各个实现类有什么作用呢, 我觉得直接 顾名思义 吧  QueryWrapper(删,查) 因为参数一般都从前端传来的数据中得到, 所以必须用条件封装的第一个参数确认它不为null UpdateWrapper(改) LambdaQuer

    2024年02月04日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包