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
      • 一对一数据查询
        • of
        • eq
        • value
        • in
        • condition
        • like
        • query
      • 测试用例地址
    • OneToMany
    • QueryCondition
    • safe-mode
  • 配置

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

OneToOne

# 一对一数据查询

一对一数据查询,正所谓一对一查询也就是查询的结果会有映射关系下面来挨个看看

# of

场景: 在进行数据查询之前需要构造的查询条件使用OneToOne.of()进行构造 注:

  1. 排除复杂条件查询之外的条件都会通过SFunction返回值进行匹配
  2. 并且返回的SFunction返回值会作为Map中Key的类型
final OneToOne<UserInfo, Long, UserInfo> of = OneToOne.of(UserInfo::getId);
// 代表后续的查询条件除去复杂条件查询之外 都会通过id进行匹配 并且返回的实体的ID会作为Map中Key的类型

# eq

场景 拼接条件:等于


Map<Long, UserInfo> idUserMap = OneToOne.of(UserInfo::getId).eq(1L).query();
// 将UserInfo实体对应表中的id属性所对应的字段等于1的数据全部查询出来放到一个Map中,Map的key为id,value为UserInfo

# value

场景:映射返回字段,也就是value并不想要返回实体类,而是返回实体类中的某个字段

Map<Long, String> userIdNameMap = OneToOne.of(UserInfo::getId).in(userIds).value(UserInfo::getName).query();
// 将UserInfo实体对应表中的id属性所对应的字段等于1的数据全都查询出来放到一个Map中,Map的key为id,value为name

# in

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


Map<Long, String> userIdNameMap =
        OneToOne.of(UserInfo::getId)
            .in(userIds)
            .value(UserInfo::getName)
            .query();
// 将UserInfo实体对应表中的id属性所对应的字段等于1的数据全都查询出来放到一个Map中,Map的key为id,value为name

# condition

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

Map<Long, String> userIdNameMap =
        OneToOne.of(UserInfo::getId)
                .eq(1L)
                .value(UserInfo::getName)
                .condition(w -> w.le(UserInfo::getAge, 22))
                .query();
// 将UserInfo实体对应表中的id属性所对应的字段等于1同时年龄小于等于22的数据查询出来放到一个Map中,Map的key为id,value为name

# like

场景:拼接条件:模糊查询

Map<Long, String> userIdNameMap =
        OneToOne.of(UserInfo::getId)
            .eq(1L)
            .like("a")
            .value(UserInfo::getName)
            .condition(w -> w.le(UserInfo::getAge, 22))
            .query();
// 将UserInfo实体对应表中的id属性所对应的字段等于1同时年龄小于等于22并且id中包含a的数据查询出来放到一个Map中,Map的key为id,value为name

# query

场景:拼接完条件之后,执行查询 注: 传去参数与之前One与Many不同,OneToOne可以传入一个Map工厂去指定通过什么类型去构造出Map对象对数据进行接收


Map<Long, Boolean> query =
        OneToOne.of(UserInfo::getId)
            .in(userIds)
            .condition(w -> w.select(UserInfo::getId, UserInfo::getName))
            .value(userInfo -> userInfo.getName() != null && userInfo.getName().contains("a"))
            .query(LinkedHashMap::new);
// 将UserInfo实体对应表中的id属性所对应的字段等于1同时年龄小于等于22并且id中包含a的数据查询出来,Map的key为id,value为当前用户的名字是否不为Null并且包含a字符串并且将返回数据通过LinkedHashMap进行接收

# 测试用例地址

OneToOneTest (opens new window)

上次更新: 2024/03/29, 09:17:32
Many
OneToMany

← Many OneToMany→

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