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

spring-boot - Spring数据R2DBC:org.springframework.data.mapping.PropertyReferenceException:没有找到类型的属性findAll

我正在尝试将ReactiveQuerydslPredicateExecutor与 R2dbcRepository 一起用于我的 spring-data-r2dbc 应用程序和 r2dbc-mssql 客户端版本 0.8.1.RELEASE

我将spring-boot版本从 2.2.7.RELEASE 升级到2.3.0.RELEASEspring-data-r2dbc版本从 1.0.0.RELEASE 升级到1.1.0.RELEASE。我正在使用 4.3.1 版的 query-dsl 生成带有 apt-maven-plugin 的 Q-Classes。

进行这些更改后,当我运行我的应用程序时,我收到以下错误。我一直在尝试一整天,但找不到任何使它起作用的东西。有什么我想念的吗?

注意:如果我不进行上述更改并且不在我的存储库类中扩展 ReactiveQuerydslPredicateExecutor,则应用程序运行得非常好。

模型类

存储库

堆栈跟踪:

0 投票
2 回答
1495 浏览

java - 忽略 spring-r2dbc 中的更新字段

我正在使用 spring r2dbc 和 ReactiveCrudRepository,我有一个字段在生成更新查询时需要忽略

如何在更新查询中忽略 companyName。我可以使用@column 在插入查询中忽略它,但它不适用于更新

0 投票
0 回答
560 浏览

spring-boot - 在 Spring Boot 中使用 Persistent Quartz Scheduler 同时使用 R2DBC

在 Spring Boot 中使用 R2DBC 时,我一直试图让 Quartz 工作。到目前为止,我还没有弄清楚如何做到这一点。这是因为在创建 JDBC 数据源时,它会尝试初始化我的 R2DBC 存储库,这是因为 R2DBC 本质上是反应式的,而 JDBC 本质上是阻塞的。

我考虑过的替代品

  • 为 Quartz 使用内存数据库---这有 Quartz 不再持久化作业的问题。我可以通过使用 R2DBC 单独跟踪作业然后在启动时重新注册所有作业来解决这个问题,但这似乎我会复制很多 Quartz 的功能。
  • 查找基于 R2DBC 的调度程序---没有。

相关 Gradle 依赖项

我当前的 Quartz 配置

相关 R2DBC 配置:

应用程序属性:

0 投票
2 回答
679 浏览

java - R2dbc 不能使用 tcp 处理 h2 数据库

我尝试使用 docker 容器 oscarfonts/h2 将 h2 与 r2dbc 一起使用。默认情况下,使用这个容器时,我们必须使用 tcp 协议,

当我尝试将它与 r2dbc 一起使用时。我收到以下明确的错误消息:

由于类 java.lang.IllegalArgumentException 重试获取数据库连接:不支持协议选项 tcp(文件、内存)

文档 r2dbc h2 说它应该与 tcp 协议一起使用。可以?

相应地使用 spring boot 2.3.0.RELEASE 和 r2dbc 版本。

0 投票
1 回答
684 浏览

spring-data - 枚举类型的spring R2DBC查询

我的 PostgreSQL 包含一个像

在 Spring Boot 应用程序中,它表示为MyType.class enum

我正在尝试使用DatabasClient

作为一个错误,我得到:

将类型转换为my_type不起作用(使用 CAST 和 ::)

我已经注册了一个适用的特定编解码器MyType.class- 无条件查询所有适用于相关@ReadingConverter

0 投票
0 回答
228 浏览

spring-data-r2dbc - R2DBC - MssqlNonTransientException 导致 onErrorDropped

我在反应性世界中很新鲜,最近遇到了很奇怪的问题,上下文:

  • 在 MS SQL 上使用带有 R2DBC 的 spring 数据
  • 在 SB 2.3、OpenJDK 14 上运行(以下依赖项)
  • 通过注释使用事务性
  • 使用纯粹基于DatabaseClient(下面的代码示例)构建的“存储库”

并在尝试执行时:

  • 从 中删除master.abc.DEF,然后
  • 一个无效的,故意插入我得到以下异常:

因此 - 事务没有回滚并且基础表被锁定:/

流程(简化)是:

以某种方式添加Hooks.onErrorDropped(error -> ...可以解决问题,但这似乎不是一个合适的解决方案,我仍然想知道实际的根本原因是什么 - 我假设我的代码/方法而不是 r2dbc。

pom片段

存储库方法(概念):

0 投票
1 回答
493 浏览

java - Spring Data r2dbc - 实体继承

Spring data JPA with Hibernate 支持javax.persistence.Inheritance 内部的注解和常量javax.persistence.InheritanceType。基于这些,实体类之间的继承被映射到数据库中(单表/联表https://stackoverflow.com/a/3579462/12053054)。

我找不到任何类似的机制来支持使用 spring data r2dbc 进行实体继承。我知道 JPA 和 Hibernate 的东西与 r2dbc 无关,但我认为在 spring 数据 r2dbc 存储库中支持继承没有任何问题,也没有任何针对函数式编程的“反模式”。

是否有任何解决方法或任何机制可以让我在 spring data r2dbc 存储库中使用继承?(不仅继承字段,而且在调用 Spring Data JPA 存储库方法时将继承转换为与 JPA/Hibernate 相同的 DB)。我唯一的临时解决方法是手动执行查询并自己实现 spring data r2dbc 存储库方法,这样我也可以将继承转换为 DB。

0 投票
1 回答
737 浏览

java - Spring R2DBC:如果 id 为零,则保存新实体

我正在从传统的 JPA 代码库迁移并面临一个问题,即无法通过将 id 设置为零来保存新实体。

这是我的架构(PostreSQL):

在 JPA 中,我可以将 id 设置为0,它将被视为一个新实体。将自动分配一个新的 ID。然而在 R2DBC 中,新实体总是以 id = 0 保存,这是不可能的。

我知道,我可以使用IntegerorLong并设置它们null,但我正在使用 Kotlin 并希望使其id不可为空。否则我必须做大量不必要的空检查。

0 投票
2 回答
4324 浏览

spring-data-jpa - 是否可以在单个 Spring Boot 应用程序中同时使用 Spring Data R2DBC 和 Spring Data JPA?

我有一个使用 Spring data JPA 和 hibernate envers 进行数据库审计的应用程序。由于 R2DBC 还不支持审计,是否可以在单个应用程序中结合使用两者?

如果是,计划使用 Spring Data JPA 进行插入、更新和删除操作,这样所有的 DB 审计都将由 hibernate 环境处理。并使用 R2DBC 进行反应式非阻塞 API 来读取数据。

如果没有,是否有关于如何同时实现反应式 API 和审计的建议?

0 投票
1 回答
1348 浏览

spring-boot - R2DBC 无法使用 h2 协议创建连接

我正在尝试利用 H2 进行测试,并在以下配置src/test/resources/application.yaml

我有一个带有注释的空测试,@SpringBootTest但是当我运行它时,我收到以下错误:

以下是来自的相关依赖项pom.xml