问题标签 [spring-data-r2dbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1421 浏览

multi-tenant - 使用 r2dbc 的基于多租户模式的应用程序

我正在开发一个使用 Spring-Webflux + Spring-data-r2dbc 和 r2dbc 驱动程序连接到 Postgresql 数据库的多租户反应式应用程序。多租户部分是基于模式的:每个租户一个模式。因此,根据上下文(例如用户登录),请求将命中数据库的某个模式。

我正在为如何在 r2dbc 中实现这一点而苦苦挣扎。理想情况下,这将是 Hibernate 使用MultiTenantConnectionProvider的方式(参见示例 16.3)。

我发现了什么以及到目前为止我做了什么:

可能我需要找到一种方法来覆盖它以便从上下文而不是配置中动态获取架构?

  • 否则我可以尝试将请求中的模式指定为表前缀:

    /li>

但是我不能再使用 SpringData 或者我需要覆盖每个请求以将租户作为参数传递。

任何提示/帮助表示赞赏:)

0 投票
1 回答
5605 浏览

java - Spring Data R2DBC如何查询分层数据

我是反应式编程的新手。我必须开发一个简单的 Spring Boot 应用程序来返回一个 json 响应,其中包含公司详细信息及其所有子公司和员工

创建了一个 Spring Boot 应用程序(Spring Webflux + Spring data r2dbc)

使用以下数据库表来表示公司与子公司和员工的关系(它是与公司和子公司的层级关系,其中一个公司可以有 N 个子公司,每个子公司可以有另外 N 个子公司等等等等)

公司

  • ID
  • 姓名
  • 地址

公司_子公司

  • ID
  • sub_company_id(上面公司表的外键引用id)

员工

  • ID
  • 姓名
  • 指定
  • company_id(上述公司表的外键引用id)

以下是表示上述表格的 java 模型类

公司.java

雇员.java

创建了以下存储库

在 Company_SubCompany 表中,超级公司用 id -1 表示。所以使用这个 id 我们现在可以得到 super parent company 。

使用以下服务代码,我现在能够获得第一级公司及其员工。但我不确定如何获取所有嵌套的子公司并添加到其中

我对反应式、函数式编程和 r2dbc 非常陌生,所以请帮助我解决我的问题。如果有任何其他更好的方法可用,也将使用该方法。要求是获得公司、其所有员工和子公司(最多 N 个休假)。

0 投票
2 回答
1894 浏览

spring - Spring Data R2DBC中如何设置多个数据源

我在我的新项目中使用spring data r2dbc,需要连接多个数据源,如A数据源和B数据源。有没有办法使用 r2dbc 连接多个数据源?如果有办法,我可以得到一个例子或文件吗?

我的堆栈如下:

  • Spring Boot 2.3.0.M4
  • Spring WebFlux
  • Spring Data R2DBC
0 投票
1 回答
1196 浏览

java - 使用 Spring r2dbc 的 MultiDb 配置始终只使用一个数据库

我有一个简单的多数据库设置来尝试使用 r2dbc 进行多数据库配置。但是,它没有按预期工作,它总是使用第一个数据库。

以上是我的代码的简单表示。我的请求总是去 Postgresql,尽管 basepackage 是为 mssql 包配置的com.x.y.repo.mssql

0 投票
0 回答
898 浏览

spring-boot - 使用 R2DBC 不回滚事务

我尝试使用 spring-data-r2dbc 进行交易,但它不起作用。当两个查询工作时没关系,当第一个查询失败时,第二个查询不会执行。但是当第二个查询失败时,第一个不会回滚。

我在 1.0.0.RELEASE 中使用了 spring-data-r2dbc,在 0.8.1.RELEASE 中使用了 r2dbc-postgresql,在 0.8.1.RELEASE 中使用了 r2dbc-pool

在调试时,我可以看到使用的 PooledConnection 的 inTransaction 属性为 false

0 投票
1 回答
255 浏览

java - 如何在 Spring Data R2DBC 中运行 @Sql 之类的查询以进行测试

我创建了一个存储库并编写了一个测试用例。我想在使用@Sql(org.springframework.test.context.jdbc)执行测试方法之前运行insert.sql,但它没有运行。还有其他方法吗?

0 投票
1 回答
376 浏览

postgresql - 无法使用 R2DBC Postgresql WebFlux 获得响应

我正在R2DBC使用 spring bootWebFluxPostgresql. 我已经成功配置了在我的本地机器上运行的 PostgreSQL 数据库。我使用了以下依赖项和插件。

请找到我的代码

从上面的代码(使用getResourcesMethod1)我能够成功地删除数据并将数据插入到数据库表中。

但是,我无法从这两个休息端点检索到任何响应。我已经使用 Postman 进行测试,它无法检索任何东西......只是缓冲......

我在这里做错了什么?我可能会错过一个非常基本的东西。任何帮助将不胜感激。

编辑

如果我打印出通量,getResourcesMethod2它将打印出FluxOnErrorResume而不是FluxArray预期的那样。我认为这可能与数据库配置有关。但我找不到这个的根课程..

0 投票
0 回答
876 浏览

java - 使用 @Query 更新不更新 ReactiveCrudRepository 中的数据

我正在将 ReactiveCrudRepository 与 Spring Web Flux 一起使用。以下查询未使用 r2dbc 更新 Postgres 数据库中的数据。我最初也尝试不使用@Modifying。我参考了这个链接使用了这个注释

0 投票
1 回答
1564 浏览

postgresql - Spring Data R2dbc中处理表之间关系的最佳实践

我尝试在 RDBMS 中创建用户/角色关系,并希望使用 R2dbc(Spring Data R2dbc) 与后端数据库握手。

假设有三个表,users、roles 和 user_roles。

与 JPA 不同,R2dbc 重用 spring-data-relational-common(也用于 Spring Data Jdbc)来注释表,但没有解决关系的工具,例如roles这里。

0 投票
0 回答
723 浏览

postgresql - R2DBC spring postgres枚举映射

我是 spring r2dbc 的新手。以前我有用户休眠。在休眠中,当您需要将 postgresql 枚举映射到 java 枚举时,您只需添加com.vladmihalcea:hibernate-types-52和使用@Enumerated(如下所示)。与R2DBC 和枚举(PostgreSQL)相关的SO 问题我必须为每个枚举创建编解码器。是否有可能通过某种标签或其他通用解决方案来实现这一目标,而不仅仅是创建多个编解码器。