Java Spring R2DBC DatabaseClient.as(…)

Java Spring R2DBC DatabaseClient.as(…),java,spring,spring-boot,kotlin,spring-data-r2dbc,Java,Spring,Spring Boot,Kotlin,Spring Data R2dbc,在我的spring boot 2.3应用程序中,我有一个使用DatabaseClient的简单数据方法: 有趣的getCurrentTime:Mono= 数据库客户端 .立即执行选择 .A型 取来 第一 } 在spring boot 2.4、spring 5.3和spring-data-r2dbc 1.2中,spring-data-r2dbc中的org.springframework.data.r2dbc.core.DatabaseClient被弃用,而spring-r2dbc中的org.spr

在我的spring boot 2.3应用程序中,我有一个使用DatabaseClient的简单数据方法:

有趣的getCurrentTime:Mono= 数据库客户端 .立即执行选择 .A型 取来 第一 } 在spring boot 2.4、spring 5.3和spring-data-r2dbc 1.2中,spring-data-r2dbc中的org.springframework.data.r2dbc.core.DatabaseClient被弃用,而spring-r2dbc中的org.springframework.r2dbc.core.DatabaseClient具有不同的API

适应这一点非常简单——除了kotlin扩展asType之外,它不是新DatabaseClientExtensions的一部分

有趣的getCurrentTime:Mono= 数据库客户端 .sqlnow选择 .map{行:行-> row.get0,LocalDateTime::class.java!! } 一 这些扩展是否在其他地方,或者如何使用具体化的类型参数进行转换?

TL;博士 在迁移到SpringR2DBC之后,没有ASCLASSAPI

一点背景 DatabaseClient从实验性的SpringDataR2DBC项目开始,尝试各种方法。其中一个评估了文本SQL API和对象映射API的结合程度。Spring数据中的DatabaseClient公开了各种API方法,如select.fromtable.astargetType

事实证明,此功能很有用,但也有一定的局限性,因为API越深入实体甚至面向聚合的方向,实际API就变得越复杂,并且在某一点上,简单对象映射和实体之间的边界(例如,实体生命周期回调)变得模糊

我们决定引入R2dbcEntityTemplate作为所有实体绑定操作的抽象,以支持最常见的用例。看看之前的fluentapi,对于所有需要特殊SQL查询、聚合、函数调用等的用例来说,仍然存在差距

同时,该项目被证明是有用的,我们已经确定了可以迁移到SpringFramework 5.3中的核心支持类,因此SpringDataR2DBC1.2可以基于SpringR2DBC之上

在迁移代码时,我们无法找到合适的方法。公平地说,DatabaseClient提供了与NamedParameterJdbcTemplate几乎相同的抽象级别,但存储过程除外。SpringJDBC附带了几个行映射器实现,例如SingleColumnRowMapper或DataClassRowMapper,这些实现对SpringR2DBC也很有用

最后的想法
从用户的角度来看,as…看到了大量的需求,我们应该调查这一功能或其变体是如何浮出水面的。

感谢您的见解!提到R2dbcEntityTemplate很有帮助,我将在存储库不足的情况下使用它,例如,对于专门的连接查询。FWIW,我在Spring Framework中提交了一份票据: