问题标签 [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.
multi-tenant - 使用 r2dbc 的基于多租户模式的应用程序
我正在开发一个使用 Spring-Webflux + Spring-data-r2dbc 和 r2dbc 驱动程序连接到 Postgresql 数据库的多租户反应式应用程序。多租户部分是基于模式的:每个租户一个模式。因此,根据上下文(例如用户登录),请求将命中数据库的某个模式。
我正在为如何在 r2dbc 中实现这一点而苦苦挣扎。理想情况下,这将是 Hibernate 使用MultiTenantConnectionProvider的方式(参见示例 16.3)。
我发现了什么以及到目前为止我做了什么:
- 可以使用这里提到的AbstractRoutingConnectionFactory。但我被迫按租户/模式创建一个 ConnectionFactory。在我看来,这远非高效/可扩展,我宁愿使用像r2dbc-pool这样的连接池
我看着PostgresqlConnectionFactory。这里有趣的是 on
/li>prepareConnection
有一个电话setSchema(connection)
:
可能我需要找到一种方法来覆盖它以便从上下文而不是配置中动态获取架构?
否则我可以尝试将请求中的模式指定为表前缀:
/li>
但是我不能再使用 SpringData 或者我需要覆盖每个请求以将租户作为参数传递。
任何提示/帮助表示赞赏:)
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 个休假)。
spring - Spring Data R2DBC中如何设置多个数据源
我在我的新项目中使用spring data r2dbc,需要连接多个数据源,如A数据源和B数据源。有没有办法使用 r2dbc 连接多个数据源?如果有办法,我可以得到一个例子或文件吗?
我的堆栈如下:
- Spring Boot 2.3.0.M4
- Spring WebFlux
- Spring Data R2DBC
java - 使用 Spring r2dbc 的 MultiDb 配置始终只使用一个数据库
我有一个简单的多数据库设置来尝试使用 r2dbc 进行多数据库配置。但是,它没有按预期工作,它总是使用第一个数据库。
以上是我的代码的简单表示。我的请求总是去 Postgresql,尽管 basepackage 是为 mssql 包配置的com.x.y.repo.mssql
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
java - 如何在 Spring Data R2DBC 中运行 @Sql 之类的查询以进行测试
我创建了一个存储库并编写了一个测试用例。我想在使用@Sql(org.springframework.test.context.jdbc)执行测试方法之前运行insert.sql,但它没有运行。还有其他方法吗?
postgresql - 无法使用 R2DBC Postgresql WebFlux 获得响应
我正在R2DBC
使用 spring bootWebFlux
和Postgresql
. 我已经成功配置了在我的本地机器上运行的 PostgreSQL 数据库。我使用了以下依赖项和插件。
请找到我的代码
从上面的代码(使用getResourcesMethod1
)我能够成功地删除数据并将数据插入到数据库表中。
但是,我无法从这两个休息端点检索到任何响应。我已经使用 Postman 进行测试,它无法检索任何东西......只是缓冲......
我在这里做错了什么?我可能会错过一个非常基本的东西。任何帮助将不胜感激。
编辑
如果我打印出通量,getResourcesMethod2
它将打印出FluxOnErrorResume
而不是FluxArray
预期的那样。我认为这可能与数据库配置有关。但我找不到这个的根课程..
java - 使用 @Query 更新不更新 ReactiveCrudRepository 中的数据
我正在将 ReactiveCrudRepository 与 Spring Web Flux 一起使用。以下查询未使用 r2dbc 更新 Postgres 数据库中的数据。我最初也尝试不使用@Modifying。我参考了这个链接使用了这个注释
postgresql - Spring Data R2dbc中处理表之间关系的最佳实践
我尝试在 RDBMS 中创建用户/角色关系,并希望使用 R2dbc(Spring Data R2dbc) 与后端数据库握手。
假设有三个表,users、roles 和 user_roles。
与 JPA 不同,R2dbc 重用 spring-data-relational-common(也用于 Spring Data Jdbc)来注释表,但没有解决关系的工具,例如roles
这里。
postgresql - R2DBC spring postgres枚举映射
我是 spring r2dbc 的新手。以前我有用户休眠。在休眠中,当您需要将 postgresql 枚举映射到 java 枚举时,您只需添加com.vladmihalcea:hibernate-types-52
和使用@Enumerated
(如下所示)。与R2DBC 和枚举(PostgreSQL)相关的SO 问题我必须为每个枚举创建编解码器。是否有可能通过某种标签或其他通用解决方案来实现这一目标,而不仅仅是创建多个编解码器。