问题标签 [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.
java - Spring R2DBC:如果 id 为零,则保存新实体
我正在从传统的 JPA 代码库迁移并面临一个问题,即无法通过将 id 设置为零来保存新实体。
这是我的架构(PostreSQL):
在 JPA 中,我可以将 id 设置为0
,它将被视为一个新实体。将自动分配一个新的 ID。然而在 R2DBC 中,新实体总是以 id = 0 保存,这是不可能的。
我知道,我可以使用Integer
orLong
并设置它们null
,但我正在使用 Kotlin 并希望使其id
不可为空。否则我必须做大量不必要的空检查。
spring-boot - R2DBC 无法使用 h2 协议创建连接
我正在尝试利用 H2 进行测试,并在以下配置src/test/resources/application.yaml
:
我有一个带有注释的空测试,@SpringBootTest
但是当我运行它时,我收到以下错误:
以下是来自的相关依赖项pom.xml
:
spring-boot - 无法运行 SQL 脚本来初始化 Spring Boot 测试的测试数据
我有一个带有 webflux 和 r2dbc 的 Spring Boot 2.3 反应式应用程序。通常它在 MS Sql 数据库上运行。我希望单元测试在 H2 上运行。当根据正在使用的 application.properties 文件(主文件或测试文件)加载正确的数据库驱动程序时,我明白了这一点。但我不知道如何运行 SQL 脚本来创建模式和加载数据。
尝试以下但未成功:
schema-XXX.sql、data-XXX.sql,它们与非反应式 JPA 一起工作得很好。
@Sql 注解引用资源目录中的 *.sql 文件。
ConnectionFactoryInitializer bean 与应用程序配置文件位于同一包中,但位于测试源树下。@Configuration 和 @Bean 使用正确,但是 bean 没有实例化。也许这就是问题所在?
日志中没有任何内容表明执行 *.sql 文件的尝试甚至失败。
谢谢你。
spring-boot - R2DBC 存储库如何与 Postgis 几何图形一起使用?
我有几个与 Spring Data JPA 一起使用的实体类。(这些实体类位于安装了 postgis 并包含几何字段的 postgres 数据库中。)
但是,当我切换到 r2dbc 时,它不起作用。任何指针将不胜感激。
错误原因:java.lang.IllegalStateException:找不到类 org.locationtech.jts.geom.Geometry 所需的标识符属性!
java - 如何在 Spring Data R2DBC 中将一对多/一对一映射到 POJO
我正在尝试在新的响应式 Data r2dbc 中复制我在 Spring Data JPA 中使用的一些功能。我知道 r2dbc 不是一个成熟的 ORM,但想了解在 r2dbc 中复制以下场景的最佳方法是什么:
如果我使用 Spring Data JPA ,对 DoctorRepository(扩展 JpaRepository)的简单 findById 调用将为我doctor
提供包含表中语言doctor_language
列表和表中健康提供者列表的对象health_provider
我正在阅读有关预测的内容,但似乎无法找出在 Reactive Spring 中实现上述内容的最佳方法。任何帮助/指南/方向表示赞赏。
谢谢
java - 如何连接到 postgres 并使用 r2dbc 执行查询
我正在尝试编写一个简单的函数来连接postgres
并执行一个 select 语句。
上面的代码没有打印任何东西。也没有错误。我可以使用相同的凭据连接到数据库。从数据库流式传输数据的代码中缺少什么?
spring-data-r2dbc - Difference between io.r2dbc.pool.PoolingConnectionFactoryProvider.MAX_SIZE vs ConnectionPoolConfiguration max size in r2dbc
I am trying to understand the difference between 2 configurable parameters while creating a connection pool using r2dbc-pool.
I was able to configure the connection pool with the help of the below post: Connection pool size with postgres r2dbc-pool
But wanted to understand the difference while configuring max size and initial size while creating
ConnectionFactory connectionFactory = ConnectionFactories.get(ConnectionFactoryOptions.builder() .option(DRIVER, "pool") .option(PROTOCOL, "postgresql") .option(HOST, host) .option(USER, user) .option(PASSWORD, password) .option(MAX_SIZE, 30) .option(INITIAL_SIZE, 10) .option(DATABASE, database) .build());
ConnectionPoolConfiguration configuration = ConnectionPoolConfiguration.builder(connectionFactory) .maxIdleTime(Duration.ofMinutes(30)) .initialSize(initialSize) .maxSize(maxSize) .initialSize(20) .maxCreateConnectionTime(Duration.ofSeconds(1)) .build();
spring - 如何在 r2dbc 中批量执行多个插入?
我需要将多行一次插入一个表中。在 DatabaseClient 中,我找到了 insert() 语句和 using(Publisher objectToInsert) 方法,该方法具有多个对象作为参数。但它会在一批中插入它们吗?另一种可能的解决方案是connection.createBatch(),但它有一个缺点:我不能在那里传递我的实体对象,也不能从实体生成sql查询。
那么,是否可以在 r2dbc 中创建批量插入?
spring-boot - R2DBC 和 liquibase
所以开始一个新项目,我想使用 r2dbc 和 webflux,一直在研究有什么支持来处理数据库迁移。我在这里能找到的最后一个答案是从 2019 年 7 月开始,liquibase 不支持 R2DBC,在谷歌搜索之后,情况似乎仍然如此。
梦想是r2dbc-h2
在本地开发时使用,然后在生产过程中使用类似 postgres 的东西。Liquibase 将在本地和生产中管理表结构。
一直在尝试用谷歌搜索一下这种设置的外观,但那里的信息很少。
我一直在考虑使用 设置表格liquibase-maven-plugin
,但我不知道这是否适用于r2dbc-h2
.
所以几个问题:
- 如何设置以便 liquibase 在迁移期间使用常规驱动程序,而应用程序的其余部分使用反应式驱动程序?
- 如果使用 maven 插件,这可以与 H2 一起使用还是我需要 postgres 作为 docker?
这对我来说是一个非常黑洞,有任何信息吗?