如何在 r2dbc 中连接表?

2024-01-09

在java反应器中,r2dbc。我有两个表 A、B。我还为它们定义了存储库。 如何获取A连接B组成的数据?

我只提出以下方法: 从 A 调用databaseClient.select,然后在循环中从 B 调用 select。

但我想要更有效和反应性的方式。怎么做?


TL;DR:使用 SQL。

春季数据DatabaseClient是 R2DBC 的改进和反应变体JdbcTemplate用于 JDBC。它封装了各种执行模式、资源管理和异常翻译。其流畅的 API select/insert/update/delete 方法适合简单、扁平的查询。超出所提供 API 范围的所有内容均受 SQL 使用限制。

话虽如此,您正在寻找的方法是DatabaseClient.execute(…):

DatabaseClient client = …;
client.execute("SELECT person.age, address.street FROM person INNER JOIN address ON person.address = address.id");

存储库也是如此@Query方法。

在结果处理期间调用数据库是锁定整个结果处理的好方法,因为结果是按流方式获取的。在尚未获取所有结果的情况下发出查询可能会耗尽 128 或 256 个项目的预取缓冲区,并导致结果流卡住。此外,您正在创建一个 N+1 问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 r2dbc 中连接表? 的相关文章

随机推荐

  • R 裁剪栅格的无数据

    我想裁剪一些栅格的无数据部分 图像的示例1 https i stack imgur com hkr4d png其中无数据为黑色 无需手动定义范围 任何想法 您可以使用trim删除只有外部行和列NA values library raster
  • 同时是 Kotlin 成员和扩展

    为了更多地了解 Kotlin 并使用它 我正在开发一个示例 Android 应用程序 我可以在其中尝试不同的事情 然而 即使在搜索该主题一段时间后 我仍无法找到以下问题的正确答案 让我们在 View 类上声明一个 虚拟 扩展函数 fun V
  • 当我的程序出现分段错误时,即使设置了 RUST_BACKTRACE=1,为什么我也得不到回溯?

    我想查看随机分段错误的回溯 所以我设置了RUST BACKTRACE 1环境变量 通常它会打印回溯信息 但这次不打印 为什么不RUST BACKTRACE work RUST BACKTRACE 1 target debug grin mi
  • 重写 Javascript Map 的相等函数

    我想在 Javascript 中创建一个 Map 字典 其中键是数字数组 值是某个对象 我想从地图中检索以前使用相同数组内容存储的值 即 如果我有一个包含某些内容的数组 我想检索以前为具有相同内容的数组存储的值 如果有 在大多数其他语言中
  • 异步/等待和缓存

    我的服务层正在缓存大量对 memcached 的 Db 请求 这是否导致无法使用 Async Await 例如我怎么能等待这个 public virtual Store GetStoreByUsername string username
  • NSString 内部结构 - 长度如何工作?

    我有一个关于 NSString 内部结构的问题 我想检查字符串长度 基本上我想知道 NSString 是否知道它的长度 每次计数 计数并缓存结果 我应该存储它的长度并每次计算或调用长度方法吗 为了测试一个字符串 我可以测试 nil 或询问它
  • xml dom解析器在java中按名称查找标签

    我有一个 xml 我只想获取城市和温度 我尝试了以下方法 HttpParams httpParameters new BasicHttpParams HttpClient httpclient new DefaultHttpClient h
  • 在 Word2Vec 中合并预训练模型?

    我已经下载了 1000 亿字的 Google 新闻预训练矢量文件 除此之外 我还在训练自己的 3GB 数据 生成另一个预训练的矢量文件 两者都有 300 个特征维度和超过 1GB 的大小 我如何合并这两个巨大的预训练向量 或者我如何训练一个
  • C# 中的映射的映射相当于什么

    在 C 中我正在使用map
  • MVP模式(GWT)的优点是什么

    我刚刚读过本文 http code google com intl de DE webtoolkit doc latest DevGuideMvpActivitiesAndPlaces html这确实让我很困惑 其次 此模型允许我们最大限度
  • 什么是控制器类? [复制]

    这个问题在这里已经有答案了 什么是控制器类 例如 uiviewcontroller uiviewcontroller 和 uiview 有什么区别 谢谢 Cocoa 使用面向对象编程中的模型 控制器 视图概念进行工作 在此系统中 模型由存储
  • 如何获取 NameValueSectionHandler 类型的 ConfigurationSection 的值

    我正在使用 C Framework 3 5 VS 2008 我正在使用ConfigurationManager将配置 不是默认的 app config 文件 加载到 Configuration 对象中 使用 Configuration 类
  • 解析 SDK 1.7.1 无法在 Xcode 6.3 中工作

    我的代码在 Xcode 6 2 中运行良好 更新到 Xcode 6 3 后 我遇到了一些 Nullabilty 错误 下载 Parse SDK 1 7 1 后 我可以解决这些错误 所以我删除了项目中旧的 Parse 框架文件并将新的粘贴到其
  • 将浮点数转换为无符号整数,同时保留顺序

    我找到了很多关于 SO 的答案 专注于转换float to int 我只处理正浮点值 我一直在使用的一种简单方法是 unsigned int float2ui float arg0 float f arg0 unsigned int r u
  • 设计 RESTful 登录服务

    我经历过类似的问题here https stackoverflow com questions 4608225 how do i implement login in a restful web service 但我还不清楚概念 这是我的场
  • Spark 使用数据局部性吗?

    我正在尝试了解 Apache Spark 的内部结构 我想知道 Spark 是否使用某些机制来确保从 InputFormat 读取或写入 OutputFormat 或 Spark 本机支持的其他格式而不是从 MapReduce 派生的格式
  • System.NotSupportedException - 无法比较“System.Linq.IQueryable”类型的元素

    我目前收到以下错误 gt EntityFramework SqlServer dll 中发生 System NotSupportedException 类型的异常 但未在用户代码中处理 其他信息 无法比较 System Linq IQuer
  • python selenium 将密钥发送到只读文本框

    我正在尝试使用下面的 python selenium 代码将密钥发送到下面的字段
  • 单行删除重复项,保持列表的排序[重复]

    这个问题在这里已经有答案了 我有以下清单 Herb Alec Herb Don 我想在保持顺序的同时删除重复项 所以它是 Herb Alec Don 以下是我详细地执行此操作的方法 l new for item in l old if it
  • 如何在 r2dbc 中连接表?

    在java反应器中 r2dbc 我有两个表 A B 我还为它们定义了存储库 如何获取A连接B组成的数据 我只提出以下方法 从 A 调用databaseClient select 然后在循环中从 B 调用 select 但我想要更有效和反应性