Stream-Query Stream-Query
首页
  • 项目初衷与诞生
  • 介绍
  • 快速上手
  • 目录结构
  • core模块

    • Opp
    • Sf
    • Map
    • Steam
    • TreeHelper
    • HighlightHelper
    • ReflectHelper
    • BeanHelper
  • plugin模块

    • Database
    • One
    • Many
    • OneToOne
    • OneToMany
  • 安装

    • 通过Maven安装
    • 通过Gradle安装
    • 下载jar安装
    • 通过源码编译
  • 动态mapper

    • 指定package
    • 指定注解
    • 指定接口
    • 指定实体类
  • 团队成员
  • dromara
  • 社区周边
  • 成为开发成员
  • 项目问题

    • 最新版本依赖下载失败
    • 项目编译报错
    • 如何贡献代码
    • 如何贡献文档
    • 使用本项目需要的前置知识
  • 其他问题

    • 作者是在全职维护开源吗
    • 你们这是个什么团队啊
    • 和其他类似的开源项目有什么区别
赞助
  • 1-5-0-alpha
  • 1-6-0-alpha
  • 1-7-0-alpha
  • 1-8-0
  • 1-9-0
  • 1-9-1
  • 2.0.0-alpha+001
  • 2.0.0-alpha+002
  • 2.0.2
Source (opens new window)
首页
  • 项目初衷与诞生
  • 介绍
  • 快速上手
  • 目录结构
  • core模块

    • Opp
    • Sf
    • Map
    • Steam
    • TreeHelper
    • HighlightHelper
    • ReflectHelper
    • BeanHelper
  • plugin模块

    • Database
    • One
    • Many
    • OneToOne
    • OneToMany
  • 安装

    • 通过Maven安装
    • 通过Gradle安装
    • 下载jar安装
    • 通过源码编译
  • 动态mapper

    • 指定package
    • 指定注解
    • 指定接口
    • 指定实体类
  • 团队成员
  • dromara
  • 社区周边
  • 成为开发成员
  • 项目问题

    • 最新版本依赖下载失败
    • 项目编译报错
    • 如何贡献代码
    • 如何贡献文档
    • 使用本项目需要的前置知识
  • 其他问题

    • 作者是在全职维护开源吗
    • 你们这是个什么团队啊
    • 和其他类似的开源项目有什么区别
赞助
  • 1-5-0-alpha
  • 1-6-0-alpha
  • 1-7-0-alpha
  • 1-8-0
  • 1-9-0
  • 1-9-1
  • 2.0.0-alpha+001
  • 2.0.0-alpha+002
  • 2.0.2
Source (opens new window)
  • 指南

    • 快速上手
    • 模块介绍
    • 项目初衷与诞生
  • core

    • Opp
    • Sf
    • TreeHelper
    • LighHight
    • LambdaHelper
    • Steam
    • Maps
    • ReflectHelper
    • BeanHelper
  • plugin

    • DataBase
    • One
    • Many
    • OneToOne
    • OneToMany
      • 一对多数据查询
        • of
        • value
        • in
        • condition
      • 测试用例地址
    • QueryCondition
    • safe-mode
  • 配置

  • 指南
  • plugin
臧臧
2023-06-06
目录

OneToMany

# 一对多数据查询

场景: 一对多数据查询(自动编排分组),正所谓一对多查询也就是查询的结果会有映射关系是一对多的下面来挨个看看 比如: 我现在要查询年龄为18岁的所有用户,那么我查询出来的结果就是一个Map<Integer, List>,key为年龄,value为年龄为18岁的所有用户

# of

场景: 在进行数据查询之前需要构造的查询条件使用OneToMany.of()进行构造,后续分组会通过of里的参数自动进行分组 注: 排除复杂条件查询之外的条件都会通过SFunction返回值进行匹配

final OneToMany<UserInfo, Integer, UserInfo> of = OneToMany.of(UserInfo::getAge);
// 代表后续的查询条件除去复杂条件查询之外 都会通过age进行匹配 并且返回的实体的age会作为Map中的Key,value默认为对应的实体,如果有调用value的话则为value方法中的返回值

# value

场景 我们在封装Map的key的时候List中的泛型如果不想要整个实体的话可以使用value方法指定返回的字段


Map<Integer, List<String>> userAgeNameMap =
              OneToMany.of(UserInfo::getAge).value(UserInfo::getName).query();
// 将UserInfo实体对应表中的的数据全都查询出来放到一个Map中,通过年龄分组,Map的key为age,value为用户的name

# in

场景 拼接条件:in,也就是查询某个字段在某个集合中的数据(批量查询)

List<Integer> userAges = Arrays.asList(21, 24);
Map<Integer, List<String>> userAgeNameMap =
                OneToMany.of(UserInfo::getAge)
                .in(userAges)
                .value(UserInfo::getName)
                .query();

// 将UserInfo实体对应表中的age属性所对应的字段等于21或者24的数据全都查询出来放到一个Map中,通过年龄分组,Map的key为age,value为用户的name

# condition

场景:复杂查询自定义拼接


Map<String, List<UserInfo>> nameUsersMap =
              OneToMany.of(UserInfo::getName)
                  .in(userNames)
                  .condition(w -> w.le(UserInfo::getAge, 21))
                  .query();

// 将UserInfo实体对应表中的name属性所对应的字段等于userNames集合中的数据并且age小于等于21的数据全都查询出来放到一个Map中,通过name分组,Map的key为name,value为用户的UserInfo实体

# 测试用例地址

OneToManyTest (opens new window)

上次更新: 2024/03/29, 09:17:32
OneToOne
QueryCondition

← OneToOne QueryCondition→

Theme by Vdoing | Copyright © 2023-2024 阿超 | Apache License, Version 2.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式