问题标签 [r2dbc-postgresql]

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 投票
0 回答
129 浏览

java - 如何使用 R2DBC 存储库将嵌入式实体插入数据库

我正在使用 R2DBC 存储库进行响应式操作。我正在尝试插入一条包含聚合 java 对象的记录。例如,Person 是我拥有的一个实体,Address 是一个不同的嵌入式类引用。现在,我想将 Person 对象数据插入到数据库中。

我的类和数据库结构如下所示:

注意:我知道如何使用 JPA 存储库来实现这一点。即通过使用@Embedded 和@Embeddable 注释。但我正在寻找一种方法来使用 R2DBC 存储库来做同样的事情。

还想确认一下,我在博客的某处读到 R2DBC 不支持用于实体类的此类嵌入式结构。此外,它不支持 OneToOne、OneToMany、ManyToOne 和 ManyToMany 等关联。

0 投票
0 回答
175 浏览

spring-data-r2dbc - 在@Query 中使用 $1 会引发异常:无法对 org.springframework.r2dbc.core.Parameter 类型的参数进行编码

我在我的项目中使用 R2DBC。从 2.5.* 升级到 Spring Boot 到 2.6.1 后,我的查询:

抛出异常:

一旦我$1将查询更改为:dataId然后它就可以工作了。

这是为什么?根据文档,两者都是有效的。

0 投票
2 回答
165 浏览

spring-webflux - 为什么多次调用 DB

我正在使用 Postgre SQL 玩 R2DBC。我正在尝试的用例是通过 ID 以及语言、演员和类别获取电影。下面是架构

在此处输入图像描述

这是ServiceImpl中对应的一段代码

日志显示 4 次拍摄电话

我不是在寻找 SQL 优化(连接等)。我绝对可以让它更高效。但问题是为什么我确实看到了对 Film 表的 4 个 SQL 查询。只是补充一下,我已经修复了代码。但无法理解核心原因。提前致谢。

0 投票
1 回答
84 浏览

spring-data-r2dbc - R2DBC Postgres SQL 枚举问题

作为学习 r2DBC 的一部分,我遇到了枚举转换面临的问题。我在这里使用 PostgreSQL。在读取评级为PG-13 和 NC-17(任何带有破折号的内容)的 Film 数据时,我遇到了问题。

下面是我的表格架构

mpaa_rating 定义为

这是我在我的配置中注册转换器的代码

我的检索代码非常简单

添加抛出的异常https://gist.github.com/harryalto/bd​​51bbcdd081868c5064c808d08205e4

我尝试研究堆栈溢出,但无法找出问题所在。任何帮助是极大的赞赏。

0 投票
0 回答
33 浏览

jhipster - 在 jhipster 网关中使用 postgres 时经常收到准备好的语句错误

我经常在应用程序网关中经常收到准备好的语句错误。使用单体或微服务时我没有收到此错误

网关使用 r2dbc 驱动程序,而另一个使用 jdbc 驱动程序。

我们可以prepareTreshold=0在 jdbc 驱动程序中指定来解决这个问题,但找不到与 r2dbc 驱动程序相关的任何内容

数据库

准备好的语句错误

0 投票
1 回答
129 浏览

spring-data - 意外的 NoSuchMethodError RowMetadata.getColumnMetadatas() - 尽管存在正确的依赖关系

运行我的应用程序(Spring Boot 2.5.7)时 - 更新到 spring-data-r2dbc 1.3.7 后,我得到了NoSuchMethodError RowMetadata.getColumnMetadatas().

(我也尝试过 1.4.0 - 1.3.7 是问题首先出现的地方。)

在此 spring-data-r2dbc 版本中,已进行更改以从getColumnNames(请参阅https://github.com/spring-projects/spring-data-r2dbc/issues/683)移至getColumnMetaDatas().

奇怪的是我也有依赖

  • r2dbc-spi-0.9.0.RELEASE
  • org.postgresql:r2dbc-postgresql - 0.9.0.RC1

r2dbc-postgresql 的 0.9.0 RC1 履行了 spi 合约。所以,似乎一切都应该到位——

spring-data-r2dbc (1.3.7) 的正确版本调用getColumnMetaDatas()

这是 0.0.9.RELEASE r2dbc-spi interface 的一个方法,RowMetaData由 r2dbc-postgresql 的 0.9.0.RC1 版本实现PostgresqlRowMetadata

我查看了我的 maven 依赖树,并没有看到其中任何一个的竞争版本。

我可以假设实现与 spi 的绑定很糟糕,但我已经足够远了,可以调用数据库然后尝试提取数据,所以这似乎不对。因此,似乎还有其他事情发生了。

我添加了命令行选项-verbose:class以查看正在加载哪些类/jar,并且从那里看起来也正确:

堆栈跟踪:

我也有

  1. 将我的 JDK 更新到最新版本的 Corretto 1.8
  2. 使用该版本编译 spring-data-r2dbc 1.4.0 并使用它
  3. 在 RowMetaDataUtils 中插入代码以反映和记录metadatacontainsColumn(...). 结果包括public java.util.List<io.r2dbc.postgresql.PostgresqlColumnMetadata> io.r2dbc.postgresql.PostgresqlRowMetadata.getColumnMetadatas(),这使得这更加令人困惑。

我会尝试做一个重复这个的测试 - 但希望有人有一个想法让我尝试修复或调试。

0 投票
1 回答
144 浏览

spring-data-r2dbc - R2DBC TransientDataAccessResourceException:具有 Id [...] 的行不存在

作为 R2DBC 学习过程的一部分,我有一个复杂的场景,即创建相关实体作为创建主要实体的一部分。我正在尝试创建一个电影实体及其相关实体。 在此处输入图像描述

我的要求是这样的

}

下面是我的逻辑和代码

代码 :

这是我得到的失败:

TransientDataAccessResourceException:无法更新表 [film_category]。Id [1006] 的行不存在。

https://gist.github.com/harryalto/d91e653ca1054038b766169142737f87

电影实体 ID 未保留,因此依赖插入失败。

0 投票
0 回答
143 浏览

spring-data - 如何使用弹簧数据 r2dbc 以反应方式流式传输 blob

我有一个使用 PostgresDB 在 Netty 上运行的反应式应用程序。有一个带有 blob 列的表。如何根据请求响应式下载文件。

下面是实体——

下面是存储库类:

打电话时

在第 1223 行,字节数组被加载到内存中。然后我用 ByteBuffer 包装字节数组

然后将myDataBuffer设置到 serverResponse 的主体中。我知道这消除了响应式流式传输数据的全部目的。但是根据有关此主题的可用信息,这是我可以使下载功能正常工作的唯一方法。

实现这一目标的推荐方法是什么?在 JPA 存储库的情况下,可以创建投影接口以仅获取 blob,投影接口是否可以使用 r2dbc ReactiveSortingRepository;只获取一列?

像这样的东西:

Blob 是一个可以流式传输 ByteBuffer 的 r2dbc 接口: https ://r2dbc.io/spec/0.8.0.RELEASE/api/io/r2dbc/spi/Blob.html#stream

0 投票
0 回答
81 浏览

spring - 一对多关系映射在 spring 反应式 web-flux 中未正确执行

我正在尝试使用 web-flux 和 r2dbc for PostgreSQL 的 spring boot 应用程序,最初我可以做一些 POST、GET、PUT、DELETE 操作。但是,当我尝试将客户表与订阅表链接时,开始出现错误。

我在下面粘贴这些实体类

我还粘贴了 intellij 生成的错误日志

我参考了互联网来解决这个问题,但没有遇到任何有用的东西。任何帮助都是不言而喻的。

0 投票
0 回答
96 浏览

java - Spring r2dbc自定义Json转换器不起作用

我正在尝试使用带有 postgres sql 的 spring webflux 将 json 插入 json 列。我创建了用于读写的自定义转换器。问题是,无论何时尝试更新记录,现有的 json 值都会变为空。新值也与空对象一起作为 json 插入。请让我知道我在哪里做错了

}

}