org.springframework.r2dbc DatabaseClient类已移动到
import org.springframework.r2dbc.core.DatabaseClient;从…
import org.springframework.data.r2dbc.core.DatabaseClient;Spring data documentation https://spring.io/projects/spring-data-r2dbc引用了一个简单的'as‘方法来转换为对象
databaseClient
.sql("select * from reading")
.as(CrepsReading::class.java)
.fetch()
.all()
.asFlow()它不能正常工作。map(class)也不需要。似乎只有映射类才能工作。
val all: Flux<CrepsReading> = databaseClient
.sql("SELECT id, name FROM person")
.map(CrepsReading::class)
.fetch().all()如何简单地使用spring-data-r2dbc (1.2.0)映射对象?是否有文档描述了作为DatabaseClient -data-r2dbc一部分的spring的用法?
发布于 2020-11-22 18:15:03
在Spring5.3/ Spring Data R2dbc中,DatabaseClient被重构并移到Spring框架的核心。
检查my example以查看如何处理生成的映射。
public static final BiFunction<Row, RowMetadata, Post> MAPPING_FUNCTION = (row, rowMetaData) -> Post.builder()
.id(row.get("id", UUID.class))
.title(row.get("title", String.class))
.content(row.get("content", String.class))
.status(row.get("status", Post.Status.class))
.metadata(row.get("metadata", Json.class))
.createdAt(row.get("created_at", LocalDateTime.class))
.build();
private final DatabaseClient databaseClient;
public Flux<Post> findByTitleContains(String name) {
return this.databaseClient
.sql("SELECT * FROM posts WHERE title LIKE :title")
.bind("title", "%" + name + "%")
.map(MAPPING_FUNCTION)
.all();
}https://stackoverflow.com/questions/64765251
复制相似问题