问题标签 [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 回答
1913 浏览

spring-data-r2dbc - ClassNotFoundException:org.springframework.data.repository.query.QueryMethodEvaluationContextProvider

R2DBC 入门视频之后,我将一些存储库转换为以 PostgreSQL 作为数据库的现有 Spring Boot 应用程序中的反应式。该应用程序在转换之前工作。在我尝试启动应用程序后,我收到以下错误:

QueryMethodEvaluationContextProvider 类应该在那里。我猜数据库配置不能与现有数据库和 Spring Data 配置共存。

Spring Boot 版本是 2.0.5.RELEASE。相关依赖如下:

这是与视频代码相同的数据库配置:

配置公共类 ReactDatabaseConfig {

一些相关的依赖信息如下:

如何解决这个问题?

0 投票
1 回答
1416 浏览

spring - r2dbc 生产应用的可行性和未来路线图

我一直在密切关注pivot 的r2dbc 更新,我希望使用这种方法构建我的应用程序。我尝试了一些带有 r2dbc postgres 驱动程序的小型应用程序,如下所示:

正如 Pivotal 所说,这是一个实验项目,其最终目标是最终影响 ADBA。如果包含在 Spring/SpringBoot 的发布版本中,这可能非常有用。现在的问题是,阻止 Pivotal 将其包含在 RELEASE 版本中的缺点到底是什么。另外,是否建议使用 SNAPSHOT 版本上线?

谢谢,GV

0 投票
1 回答
694 浏览

json - 在使用响应式弹簧存储库保存之前将对象的复杂字段映射到文本字段(序列化为 JSON)

我正在使用 Spring 数据 r2dbc 存储库将 pojo 保存到 Postgres DB。我有一个复杂领域的课程definition

我正在尝试找到一种添加转换器的方法,该转换器将在ReactiveCrudRepository.save调用方法时将此复杂字段序列化为 JSON。我查看了源代码并阅读了 API 文档,但找不到可以插入我的逻辑的地方。

JPA这在使用和Hibernate创建自定义UserType类的项目中很容易做到。如果有人有任何指示,我将非常有义务提供任何帮助。

编辑

现在这是可行的,请查看:https ://medium.com/@nikola.babic1/mapping-to-json-fields-with-spring-data-r2dbc-and-reactive-postgres-driver-1db765067dc5

0 投票
3 回答
2999 浏览

spring-data - 反应式应用程序的 ORM 框架

我一直在寻找spring-data-r2dbc以进行反应式数据库访问。但它似乎没有提供任何 ORM 支持,如项目页面所述,它不是 ORM 框架。有哪些选项存在或计划在反应式应用程序中支持 ORM?至于今天,为字段指定列名(JPA 中的 @Column)、使用类层次结构(JPA 中的 @MappedSuperclass)以及最重要的是在使用spring-data-r2dbc时加入的最佳方法是什么?

0 投票
1 回答
1887 浏览

kotlin - ReactiveCrudRepository 与 spring-data-r2dbc 的事务

我正在尝试使用 spring-data-r2dbc 存储库结合 TransactionalDatabaseClient 来实现事务:

我目前有@Configuration一个@EnableR2dbcRepositoriesAbstractR2dbcConfiguration. 在这里,我重写了databaseClient返回一个TransactionalDatabaseClient. 这应该与 SongService 类中的实例相同。

在仅订阅和打印的测试中运行代码时,我得到org.springframework.transaction.NoTransactionException: ReactiveTransactionSynchronization not active并且不返回关系数据。

但是,当使用项目 Reactors stepverifier 时,我得到java.lang.IllegalStateException: Connection is closed. 同样在这种情况下,不返回关系数据。

只是为了记录,我已经看到了https://github.com/spring-projects/spring-data-r2dbc/issues/44

0 投票
3 回答
3435 浏览

spring-data - Spring Data ReactiveCrudRepository 保存操作未在 Postgres 数据库中持久保存数据

对于以下代码,存储库中的获取和更新操作可以正常工作。但保存操作不会将数据持久化到表中。如果我自己实现存储库,它工作正常。将其替换为扩展 ReactiveCrudRepository 的接口后,开始出现此问题。我错过了什么吗?

代码测试如下:

0 投票
0 回答
122 浏览

reactive-programming - 如何使用反应式编程从房间发布消息?

我处理反应式编程的主题。我使用 WebFlux 和 R2dbc 来访问数据库。我正在为聊天应用程序开发一个小型后端。所以我有一些关于这个主题的问题,我会很高兴提出建议和改进。

这是服务等级

DirectProcessor 什么时候应该使用 UnicastProcessor。

更新:
一点修正

但是如何从数据库中获取所有消息并将其添加到fluxSink?

0 投票
1 回答
2126 浏览

spring-data-jpa - 是否可以在不使用 JPA 或嵌套类的情况下在 Spring Boot 中实现具有表示复合主键的字段的 POJO?

我目前正在尝试在 Spring Boot 中为已经进入开发阶段的应用程序实现 R2DBC - 不幸的是,这意味着我们的 DDL 并不灵活,因为其他微服务依赖于此,反之亦然。R2DBC 的一个重要限制是不支持嵌套类。此外,它不支持 JPA,因为这会破坏全面非阻塞的目的。因此,所有这些有用的注释也不在讨论范围内。

我正在处理的课程看起来像这样:

在研究了我的问题后,我发现了很多方法来计算复合键,包括上面示例中已经显示的内容(使用 @Embeddable 注释),使用自定义 PK 对象(类似,但会使用为此目的设计的类的选项,例如 CompositeKeyHolder)、JPA @TableId(TableId.class) 注释,以及其他一些看起来不太有希望的类。

所有这些选项似乎都在使用 JPA 或使用嵌套对象,而我无法做到。我真的想不出解决这些限制的方法。但是由于我是初学者,所以我决定询问是否有人以前处理过这个问题。感谢任何反馈。

0 投票
2 回答
2242 浏览

java - 如何使用 Mono 处理可为空的字段还是 R2dbc 在 Spring 中提供的 DatabaseClient?

我不知道如何使用 spring-webflux (reactive) 在 R2dbc (java) 中构建有效的查询。使用 R2dbc 提供的 DatabaseClient 对象(或者,一个 Connection 对象),似乎我只能调用这两种方法之一的不同变体:bind(Object field, Object value)bindNull(Object field, Class<?> type). 如果我在 Java 中有一个模式和一个相应的类,并且有多个可为空的字段,那么我应该如何有效地处理这个问题?

举个例子:

或者

对于我的可空字段,我当然可以用 .bindNull 替换 .bind。问题是,如果我调用绑定,则该值不能为空。如果我调用bindNull,则该值必须为null。我将如何根据我的值是否实际上为空来调用其中一个?我已经知道我可以为每个场景创建一堆方法,或者调用一些类似 retryOnError 的方法。但是,如果我想这样做,insertOrUpdate(List<Item> items)那将浪费大量时间/资源。理想情况下,我想做一些类似于if (field == null) ? bindNull("field", field.class) : bind("field", myObj.field)某处的事情。如果这显然是不可能的,我仍然有兴趣找出一种方法来尽可能有效地实现这一点,因为我正在使用它。感谢任何反馈。

0 投票
2 回答
1197 浏览

reactive-programming - 反应式编程如何对数据库更改做出反应?

我是响应式编程主题的新手,因此有一些问题。

我正在开发一个小软件。我想借此机会更好地了解响应式编程。

所以我查看了 Spring 的 project-reactor。我还使用 R2DBC 被动地访问数据库。

我想知道数据库是否有任何方式响应更改。

或者更确切地说:如果用户在数据库中保存了一个条目,那么应该通知服务器(例如,RestController)。

我怎么能这样做呢?

对应的控制器、配置、实体等我已经实现了。

抱歉拼写错误。

补充:然后由服务器发送事件对前端进行更新。