当前位置: 首页 > 知识库问答 >
问题:

如何在r2dbc中连接表?

闻人伟
2023-03-14

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

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

但我想要更有效、更被动的方式。怎么做?

共有1个答案

蒙化
2023-03-14

TL;DR:使用SQL。

Spring Data的数据库客户端JdbcTemboard用于JDBC的R2DBC的改进和反应式变体。它封装了各种执行模式、资源管理和异常转换。其流畅的API选择/插入/更新/删除方法适用于简单而扁平的查询。超出提供的API的所有内容都受SQL使用。

也就是说,您正在寻找的方法是数据库lient.execute(...)

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

存储库查询方法也是如此。

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

 类似资料:
  • 如何从A使用r2dbc连接到Oracle DBpplication.yml? 这不会初始化DB配置。 覆盖也不起作用。配置 在生成中添加了这些依赖项。格拉德尔 这也不会创建与R2dbc的连接。 r2dbc spi即使在springframework中隐式存在,也会被添加。数据不采用导致属性丢失错误的最新版本。

  • 我得到以下exeption连接到Mssql服务器。 我在属性中使用相同的配置连接到JDBC,但在尝试连接到R2DBC时出现问题。在Rest时发生,而不是在启动应用程序时发生。

  • R2DBC目前不支持复合键。我想知道我们现在如何实现多对多关系? 例如,给定两个实体: 以及它们的模式: 我可以为多对多映射创建一个表: 但是,我们应该如何在kotlin/java中定义映射类ItemTag? 或者省略可以吗?那么类就不能有任何?我想那很好。这是唯一的含义吗?

  • 我正在尝试使用reactive连接spring项目中的oracle数据库。我需要符合Oracle TNS规范的反应式数据库连接。你能帮忙吗?

  • 问题内容: 我试图通过hibernate将一些数据插入到postgresql中。但是,关于使用postgresql配置hibernate的教程并不多(我知道,它应该类似于mysql =) src / main / resources / hibernate.cfg.xml src / main / java / src / main / java包com.hib.entities; src / m

  • 我对R2DBC池有一个奇怪的行为:我们碰巧创建了大量线程并将它们发送到R2DBC池以获取DB连接。当池中的所有R2DBC连接都在使用时,我们创建的线程排队等待空闲连接可用,这发生在释放之前使用的连接时。如果我们在等待空闲连接时取消这些线程,会发生以下行为: 即使它们被取消,也有一些线程获得连接并通过其正常的DB进程 因此,一些连接不会返回到空闲状态。它们保持被获取状态,并阻止后续连接请求获取这些特