标签: spring-data-r2dbc

如何使用 Spring Data R2DBC 控制事务流的流程?

最近似乎已经实现了对事务流的支持,但由于它的新颖性,代码示例并不多。

有人可以展示一个事务流的例子,它执行一系列数据库插入,然后在成功时返回一些值,但在插入之间有一个中游检查点来测试某些条件,并可能回滚事务并根据检查点返回不同的值结果?

spring-data-r2dbc r2dbc

3
推荐指数
1
解决办法
1920
查看次数

@Tailable(spring-data-reactive-mongodb) 相当于 spring-data-r2dbc

我正在尝试 spring-data-r2dbc。我正在 Postgresql 上尝试这个。我之前尝试过 spring-data-mongodb-reactive 。我忍不住将两者进行比较。

我发现查询派生尚不支持。但我想知道是否有等效的@Tailable. 这样我就能实时收到数据库更改的通知。任何人都可以分享与此相关的任何代码示例吗?

我知道底层数据库应该支持这一点。我相信 Postgresql 确实使用逻辑解码支持这种事情(如果我错了,请纠正我)。

@Tailablespring-data-r2dbc 中有等效的吗?

postgresql spring-data spring-boot spring-data-r2dbc

3
推荐指数
1
解决办法
812
查看次数

r2dbc ReactiveCrudRepository如何编写JPQL/HQL

我是 Spring WebFlux 反应式新手。我使用 R2DBC postgresql。我有一个这样的存储库:

public interface BookRepository extends ReactiveCrudRepository<Book, Long> {
}
Run Code Online (Sandbox Code Playgroud)

现在我想添加自定义方法来通过许多复杂的条件进行查询:

public interface CustomBookRepository extends BookRepository {
    Flux<Book> findByVeryComplicatedCondition(MyCriteriaDto criteria);
}
Run Code Online (Sandbox Code Playgroud)

我的实现:

public class CustomBookRepositoryImpl extends CustomBookRepository {

    //How to get it?
    EntityManager em;

    @Override
    public Flux<Book> findByVeryComplicatedCondition(MyCriteriaDto criteria) {
        Query query = em.createQuery("SELECT b from Book b WHERE (VERY COMPLICATED CONDITIONS)");
        //What next?
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题在上面的代码中:

  1. 如何获取EntityManager?
  2. 如何从我构建的 HQL 查询中获取 Flux?

当我问这些问题时,我的意思是“如何使用 Spring React/r2dbc 方式做到这一点”,而不是“如何使用 JDBC 做到这一点”

java hibernate spring-webflux spring-data-r2dbc

3
推荐指数
1
解决办法
3753
查看次数

R2DBC无法读取oracle数据库的URL

我尝试使用 application.properties 文件配置 oracle 的连接,但它给了我一个 IllegalArgumentException 消息“无效的 URL:r2dbc:oracle:thin:@localhost:1521:orcl”,当我使用 MySql URL 设置时,一切正常。这是我的 application.properties:

spring.r2dbc.url=r2dbc:oracle:thin:@localhost:1521:orcl
spring.r2dbc.username=account
spring.r2dbc.password=account
Run Code Online (Sandbox Code Playgroud)

请给我一个解释或解决方案,谢谢。

spring properties oracle11g kotlin spring-data-r2dbc

3
推荐指数
1
解决办法
2447
查看次数

反应式应用程序的 ORM 框架

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

reactive-programming spring-data spring-data-r2dbc r2dbc

2
推荐指数
1
解决办法
4793
查看次数

使用 R2DBC 的动机是什么?

我对反应式弹簧堆栈非常陌生,目前正在探索R2DBC.

Could you explain me what are the benefits of using R2dbcRepository over wrapping blocking JpaRepository into Mono/Flux?

Let me bring some example of that:

val producer: Mono<BookEntity> = booksReactiveRepository.findById(id)
Run Code Online (Sandbox Code Playgroud)

vs

val producer: Mono<BookEntity> = Mono.fromSupplier { booksBlockingRepository.findById(id) }
Run Code Online (Sandbox Code Playgroud)

Is there any conceptual difference on execution?

spring-webflux spring-data-r2dbc r2dbc

2
推荐指数
1
解决办法
708
查看次数

QueryDSL 注释处理器和 gradle 插件

无法理解如何配置 build.gradle 以在没有任何 jpa/jdo/mongo 的情况下使用 querydsl 注释处理器。我想使用@QueryEntity 注释来生成 Q 类,这样我就可以使用 DSL 支持编写动态 SQL 查询,然后将查询转换为纯文本并将其提供给 Spring R2DBC DatabaseClient 执行程序。

有没有办法使用 gradle querydsl apt 插件和 querydsl 注释处理器在 build.gradle 文件中生成带有 @QueryEntity 注释的 Q 类?

我正在使用 gradle 5、Spring Data R2DBC、Spring Boot,计划将 queryDsl 与注释进程集成。

这是我当前的 build.gradle:

plugins {
    id 'java'
    id 'org.springframework.boot' version '2.2.1.RELEASE'
    id "com.ewerk.gradle.plugins.querydsl" version "1.0.8"
}

apply plugin: 'io.spring.dependency-management'

group = 'com.whatever'

repositories {
    mavenCentral()
    maven { url "https://repo.spring.io/milestone" }
}

ext {

    springR2dbcVersion = '1.0.0.RELEASE'
    queryDslVersion = '4.2.2'
}

dependencies { …
Run Code Online (Sandbox Code Playgroud)

gradle querydsl spring-boot spring-data-r2dbc

2
推荐指数
2
解决办法
5885
查看次数

使用 Spring Data R2DBC 查找/修改/保存或更新插入

我正在尝试了解反应式编程,特别是 Spring 和 Spring Data R2DBC。可以帮助我更好地理解它的一件事是对对象进行查找/修改/保存或“更新插入”。传统的交互可能如下所示:

Book save(Book book) {

   Book existing = repository.findByIsbn(book.getIsbn())

   if (existing != null) {
     return repository.save(found.copyMutableValuesFrom(book));
   }

   return repository.save(book);
}
Run Code Online (Sandbox Code Playgroud)

对于 Monos 来说这看起来怎么样?我知道如何进行直接查找或直接保存,但更复杂的查找/更新/保存或更新插入却让我困惑。

谢谢。

java project-reactor spring-data-r2dbc r2dbc

2
推荐指数
1
解决办法
8171
查看次数

如何在Spring Data R2DBC中设置多个数据源

我在我的新项目中使用spring data r2dbc,需要连接多个数据源,例如A数据源和B数据源。有没有办法使用r2dbc连接多个数据源?如果有办法的话可以给我一个例子或者文档吗?

我的堆栈如下:

  • 春季启动2.3.0.M4
  • Spring WebFlux
  • Spring Data R2DBC

spring spring-data spring-data-r2dbc r2dbc

2
推荐指数
1
解决办法
6815
查看次数

如何使用 spring-boot-starter-data-r2dbc 启用连接池?

我有一个具有 data-r2dbc 依赖项的 Spring Boot 应用程序。我使用 PostgreSQL 作为数据库。
所以我已经有了以下依赖项(gradle 表示法):

  • org.springframework.boot:spring-boot-starter-data-r2dbc:2.3.5.RELEASE
  • io.r2dbc:r2dbc-postgresql

我需要为 R2DBC 连接启用连接池。不幸的是,我找不到任何详尽的手册来这样做。

根据这个相当过时的发行说明,我还必须添加io.r2dbc:r2dbc-pool 并使用spring.r2dbc.pool.*属性来配置池。

此外,根据此参考,我不需要手动打开池,因为如果r2dbc-pool在类路径中找到SB 将启用它。

够不够还是我错过了什么?

java spring-boot spring-data-r2dbc r2dbc-postgresql

1
推荐指数
1
解决办法
1114
查看次数