问题标签 [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 投票
1 回答
1161 浏览

r2dbc - 批量插入支持

我尝试使用 r2dbc 执行批量插入。

我已经从 Spring Boot 中看到 DatabaseClient ,这还不可能。我尝试使用 R2DBC SPIStatementand方法来做到这一点,如下所示:

我在日志上看到两个插入请求已完成。

add执行批量更新还是只运行两个请求?

谢谢。

0 投票
0 回答
792 浏览

kotlin - Spring Data R2DBC 持久化嵌套属性

我有一个List<Order>(或者Flux<Order>如果我想要的话)每个Order元素都有一个List<Item>. 我想使用spring-data-r2dbc(因此ReactiveCrudRepository)和spring-webflux. 这两个表都有外键约束,所以Order必须在其s之前插入 an。Item

事务处理是另一个主题,超出了这个问题的范围。应用程序该部分的返回类型应该是 a Flux<Order>,因为它将是 REST 响应的返回值。

问题是如何“组合” aMono<Order>和它的Flux<Item>.

我已经研究过压缩,但我无法让它工作(见下面注释掉的代码)。此外,我很确定拉链不是正确的事情,因为我一侧有一个,另一侧有n。我也试过.doOnSuccess了,但这也导致Flux<Item>没有终端操作。

SomeService.kt

订单.kt

项目.kt

0 投票
1 回答
403 浏览

postgresql - Spring Boot 2.2 中的 r2dbc-postgresql 0.8.0.RC1 无法正常工作

在我将 spring webflux (spring boot 2.2.0.m3 到 2.2.2.RELEASE )和 r2dbc (spring-data-r2dbc 1.0.0.M2 到 1.0.0.RELEASE )和 r2dbc-postgresql (1.0 .0.M7 到 0.8.0.M8) 项目我不断收到此错误

我的 pom.xml 在这里

我失败的业务逻辑就像上面

你能帮我找出为什么我会收到这个错误吗?

0 投票
1 回答
1505 浏览

spring-boot - 在反应性 crud 存储库 @Query 方法中使用对象属性作为参数

尝试@Query使用spring-data-r2dbc.

FooCollection 查询:

是否有可能将整个PaymentCollectionQuery对象提供给@Query在查询中指定具体属性的注释?

现在我得到以下异常:

0 投票
0 回答
2887 浏览

spring-boot - Application.properties 和 r2dbc

我将 spring boot 2.2 与 spring cloud Hoxton.SR1 一起使用。

我的数据库没有任何配置类。我只有一个 application.properties 来设置数据库。

在我的 application.properties 中,我有

当我开始申请时,

我有这个完整的堆栈 https://pastebin.com/1714kMW2

在 build.gradle

0 投票
0 回答
289 浏览

spring-boot - 我应该在基于控制器的 Spring Webflux 服务中使用 Flow 作为返回类型吗

我正在尝试在我们的下一个 Spring Boot 服务中使用 Kotlincoroutinesspring-data-r2dbc( )。databaseClient我已经熟悉这两个概念,但是当我们深入研究实现的细节时,我开始问自己这个问题。

在我看到的大多数示例中,每个返回某种集合的端点在迁移到反应式方法时都将返回 Flow。

虽然没有其他(非阻塞)方式可以使用Mono/来完成它Flux,但由于我们想将订阅移交给 engine( Webflux),但 Kotlin 的情况非常不同Flows。Flow 的终端操作是暂停的,这使得它们本质上是非阻塞的。这意味着我可以在我得到它的时间和地点以非阻塞方式终止 Flow,并继续进行常规List,例如。

当然,底层热发布者、反应式传输/协议等可能存在更复杂的场景,但在我的情况下,这是一个非常传统的服务。我们决定使用响应式方法的唯一原因是它受 IO 限制:对于每个 API 调用,我们需要通过 HTTP/REST 从多个其他服务获取数据,然后执行一些数据库查询,然后返回组合结果。List所以,问题是:如果我可以当场将其简化为常规,例如在存储库中,那么在多个应用程序层(控制器、服务、存储库)中散布 Flow 是否有意义:

这样我的应用程序层的其余部分甚至都不知道Flow(整个调用链无论如何都将保持可挂起)?

0 投票
2 回答
2264 浏览

spring-boot - 使用 inMemory 数据库时的 R2dbc H2 问题

我试图品尝 R2dbc 并使用 Embedded H2,例如:

我定义了一个 bean 来创建表和初始化数据。

而且我还定义了另一个组件来通过java代码设置数据。

如果我.inMemory("testdb")ConnectionFactorybean定义中使用,当SpringApplicationContext初始化时,它会失败,因为初始化时找不到表POSTSDataInitializer。从启动日志开始,ConnectionFactoryInitializer初始化成功,并通过执行 schema.sql 和 data.sql 创建表POSTS并按预期插入数据。

但是切换到使用.file("./testdb"),它起作用了。

完整的代码在这里

0 投票
0 回答
184 浏览

sql-server - r2dbc-mssql generatedKey 返回类型 numeric

示例堆栈:Spring Data R2dbc 1.0.0.RELEASE、R2dbc Mssql 0.8,完整代码在这里

初始化脚本:

保存数据并从中获取生成的密钥时DataInitializer

如果我在行中使用IntegerorLong而不是,它将引发错误,指示无法解码类型 [java.lang.Long] 的值,名称 [GENERATED_KEYS] 服务器类型 [numeric],它不是架构脚本中定义的,我必须使用 a才能使其工作。BigDecimal.map((r, m) -> r.get( 0, BigDecimal.class)).all()bigintBigDecimal

0 投票
1 回答
148 浏览

spring-webflux - CockroachDb 的 SQL 构建器

尝试找到任何支持 CockroachDb 并与 spring-boot-webflux、spring-data-r2dbc 配合使用的 SQL 构建器库。或者至少为我将动态 SQL 语句编写为字符串的库,我将提供给数据库客户端执行程序。

本机 spring-data-r2dbc DatabaseClient API 不支持连接语句(https://docs.spring.io/spring-data/r2dbc/docs/1.0.x/reference/html/#r2dbc.datbaseclient.fluent-api。 select ) 这就是为什么我需要另一种方式来编写非普通动态 SQL。

JOOQ 还不支持 CockroachDB(https://github.com/jOOQ/jOOQ/issues/8545)。

有没有符合我期望的图书馆?

0 投票
1 回答
4067 浏览

java - 使用 Spring Data R2DBC 获取嵌套对象

我是 Project Reactor 和 R2DBC 的新手。如何正确使用 Spring Data R2DBC 响应式存储库接收和Flux<Child>合并?Mono<Parent>

家长:

父存储库:

孩子:

子库:

ParentPersistenceAdapter:

我的解决方案是: