问题标签 [reactive-postgresql-client]
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.
transactions - Quarks 反应式 Postgresql 事务
我查看了使用响应式 SQL 客户端的指南(https://quarkus.io/guides/reactive-sql-clients#using),但我似乎无法弄清楚如何使用事务。假设我想通过使用事务来增强这个演示水果应用程序。
如果事务中的某些内容失败,我将如何使以下方法利用事务也恢复所有所做的更改?
transactions - quarkus、mutiny 和响应式 postgresql 没有回滚
我试图在同一个事务中执行 3 个插入,但是当其中一个插入失败时,我无法让事务回滚。
我是响应式世界的新手,这是我的第一个响应式应用程序。
这是数据库模型的简化:
我想在同一个事务中执行以下插入:
但是,当第二次插入失败时,第一次插入不会回滚。
我有以下课程:
Processor
: 接收来自 kafka 的消息并通过 Service 触发插入Service
:使用 3 个 DAO 运行 3 个插入EntityADao
: 运行实体 A 的插入EntityBDao
: 运行实体 B 的插入EntityBDao
: 运行实体 C 的插入
EntityBDao
并且EntityCDao
喜欢EntityADao
。
我已经将以下依赖项添加到pom.xml
:
quarkus-smallrye-context-propagation
quarkus-narayana-jta
为什么在INSERT B
查询EntityBDao
失败时,之前执行的查询(INSERT A
)没有回滚?我错过了什么?为了让它工作,我必须改变什么?
java - Quarkus 使用 OffsetDateTime 保存实体,没有偏移量/时区
我有一个Quarkus应用程序,我在其中使用Vert.x Reactive PostgreSQL Client持久化数据。
这是要持久化的实体 bean:
问题是f4
type 的字段OffsetDateTime
。在持久化之前,它的值2020-09-11T19:07:46.822828+02:00
与偏移量+02:00
为Berlin GMT+2
当这条记录被保存到 PotgreSQL 中时,我看到值(在 pgAdmin 4 中)被保存为2020-09-11 17:07:46.822828+00
(在 UTC 中没有偏移量)。当我取回它时,偏移量消失了。
我想用时区偏移量找回它。
这是我用于持久化实体的代码片段:
这是数据库创建脚本:
这些是我的依赖项build.gradle
:
vert.x - Quarkus Reactive PostgreSQL Vert.x - Long & in () 查询的集合
我正在尝试使用准备好的查询和使用一组 Long 作为参数的“where xxx in ()”查询:
但是,虽然“in”SQL 查询应该处理多个值,但它在传递数组时确实有效,并抛出以下内容:
传递单个值有效,但这不是该方法的目的:
处理一组 id 以返回多行的正确方法是什么?
编辑
我最终这样做了:
configuration - Quarkus 反应式数据源 SSL 握手错误
我正在使用Quarkus 1.13.3.FINAL
,并且在部署我的应用程序时遇到了反应式数据源运行状况检查的问题。我同时使用了 JDBC 和反应式数据源。以下是它们的设置方式:
令我困惑的是,异常表明反应数据源的 SSL 握手错误,但 JDBC 工作正常。此外,它们在本地都可以正常工作。
我读过反应式和 JDBC 数据源不能同时使用,但现在似乎不再如此了。
因为我使用 Vert.x RabbitMQ 客户端,所以我需要响应式数据源。这给了我一个响应式消费者,所以我不能再使用我的 JPA 存储库,不得不求助于响应式数据源。
我缺少一些配置吗?
java - 在 Reactive Vert.X 中加入事务的优雅方式
假设我有一个服务方法,我在其中进行一些验证/休息调用等(例如 someServiceMethod2 in),并希望以事务方式使其安全。我还有一个包含交易的 repoMethod。当父事务抛出异常时,如何回滚子事务?
有没有办法在事务中加入这两种方法?就像 TransactionDefinition.PROPAGATION_REQUIRED
传播在 Spring lib 中所做的一样。
我现在唯一能做的就是只使用服务事务并将连接传递给 repo 方法。这对我来说有点奇怪(给 repo 方法一个 sql 连接)
有没有一种优雅的方法来解决这个问题?