问题标签 [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.
spring-data-r2dbc - ClassNotFoundException:org.springframework.data.repository.query.QueryMethodEvaluationContextProvider
在R2DBC 入门视频之后,我将一些存储库转换为以 PostgreSQL 作为数据库的现有 Spring Boot 应用程序中的反应式。该应用程序在转换之前工作。在我尝试启动应用程序后,我收到以下错误:
QueryMethodEvaluationContextProvider 类应该在那里。我猜数据库配置不能与现有数据库和 Spring Data 配置共存。
Spring Boot 版本是 2.0.5.RELEASE。相关依赖如下:
这是与视频代码相同的数据库配置:
配置公共类 ReactDatabaseConfig {
一些相关的依赖信息如下:
如何解决这个问题?
java - 为什么 Spring 不为关系数据库提供响应式(非阻塞)客户端?
我使用Vert.x工具包创建响应式应用程序,支持MySQL 和 Postgres等关系数据库。我知道 Spring 为 Cassandra 和 Mongo 等一些 NoSQL DB 提供响应式支持,但他们愿意为关系 DB 提供相同的支持吗?
spring - r2dbc 生产应用的可行性和未来路线图
我一直在密切关注pivot 的r2dbc 更新,我希望使用这种方法构建我的应用程序。我尝试了一些带有 r2dbc postgres 驱动程序的小型应用程序,如下所示:
正如 Pivotal 所说,这是一个实验项目,其最终目标是最终影响 ADBA。如果包含在 Spring/SpringBoot 的发布版本中,这可能非常有用。现在的问题是,阻止 Pivotal 将其包含在 RELEASE 版本中的缺点到底是什么。另外,是否建议使用 SNAPSHOT 版本上线?
谢谢,GV
json - 在使用响应式弹簧存储库保存之前将对象的复杂字段映射到文本字段(序列化为 JSON)
我正在使用 Spring 数据 r2dbc 存储库将 pojo 保存到 Postgres DB。我有一个复杂领域的课程definition
:
我正在尝试找到一种添加转换器的方法,该转换器将在ReactiveCrudRepository.save
调用方法时将此复杂字段序列化为 JSON。我查看了源代码并阅读了 API 文档,但找不到可以插入我的逻辑的地方。
JPA
这在使用和Hibernate
创建自定义UserType
类的项目中很容易做到。如果有人有任何指示,我将非常有义务提供任何帮助。
编辑
spring-data - 反应式应用程序的 ORM 框架
我一直在寻找spring-data-r2dbc以进行反应式数据库访问。但它似乎没有提供任何 ORM 支持,如项目页面所述,它不是 ORM 框架。有哪些选项存在或计划在反应式应用程序中支持 ORM?至于今天,为字段指定列名(JPA 中的 @Column)、使用类层次结构(JPA 中的 @MappedSuperclass)以及最重要的是在使用spring-data-r2dbc时加入的最佳方法是什么?
kotlin - ReactiveCrudRepository 与 spring-data-r2dbc 的事务
我正在尝试使用 spring-data-r2dbc 存储库结合 TransactionalDatabaseClient 来实现事务:
我目前有@Configuration
一个@EnableR2dbcRepositories
从AbstractR2dbcConfiguration
. 在这里,我重写了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
spring-data-jpa - 是否可以在不使用 JPA 或嵌套类的情况下在 Spring Boot 中实现具有表示复合主键的字段的 POJO?
我目前正在尝试在 Spring Boot 中为已经进入开发阶段的应用程序实现 R2DBC - 不幸的是,这意味着我们的 DDL 并不灵活,因为其他微服务依赖于此,反之亦然。R2DBC 的一个重要限制是不支持嵌套类。此外,它不支持 JPA,因为这会破坏全面非阻塞的目的。因此,所有这些有用的注释也不在讨论范围内。
我正在处理的课程看起来像这样:
在研究了我的问题后,我发现了很多方法来计算复合键,包括上面示例中已经显示的内容(使用 @Embeddable 注释),使用自定义 PK 对象(类似,但会使用为此目的设计的类的选项,例如 CompositeKeyHolder)、JPA @TableId(TableId.class) 注释,以及其他一些看起来不太有希望的类。
所有这些选项似乎都在使用 JPA 或使用嵌套对象,而我无法做到。我真的想不出解决这些限制的方法。但是由于我是初学者,所以我决定询问是否有人以前处理过这个问题。感谢任何反馈。
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)
某处的事情。如果这显然是不可能的,我仍然有兴趣找出一种方法来尽可能有效地实现这一点,因为我正在使用它。感谢任何反馈。
spring - Spring Reactive Data (R2DBC) 中是否有 @MappedSuperclass
我有一个像这样的超级实体类:
并且 Role 类从 GenericEntity 扩展,如下所示:
之后我有这样的界面 RoleRepo :
在路由器功能中,我有 2 个处理程序方法
findAllHandler 方法工作正常,但 saveOrUpdateHandler 抛出如下异常:
但是当我搬家时
从 GenericEntity 类到 Role 类,这两种方法都可以正常工作。Spring Reactive Data 中是否有类似的注释 @MappedSuperclass/JPA
我希望所有扩展类的 GenericEntity 中的 id 字段
谢谢你的帮助
对不起,我的英语太差了
spring - Spring Data R2DBC 是否与 Reactive Redis 冲突
我有一个大问题,请你帮帮我
我使用 Spring Data R2DBC (Postgresql) 创建了 Spring Boot (2.2) Webflux 项目。一切正常,但是当我添加 Reactive Redis 依赖项时,启动 Jetty 容器,它会抛出这样的异常
当我删除 Reactive Redis 依赖时,一切都恢复正常
或者当我将 Spring Data R2DBC 更改为 Reacitve Mongo 时,它仍然可以正常工作。
Spring data R2DBC 是否与 Reactive Redis 冲突?
这是源代码演示