2

我有几个与 Spring Data JPA 一起使用的实体类。(这些实体类位于安装了 postgis 并包含几何字段的 postgres 数据库中。)

但是,当我切换到 r2dbc 时,它不起作用。任何指针将不胜感激。

错误原因:java.lang.IllegalStateException:找不到类 org.locationtech.jts.geom.Geometry 所需的标识符属性!

@Entity
public class Place {
    @Id
    public int id;
    @Column(columnDefinition="Geometry")
    @Type(type="org.hibernate.spatial.GeometryType")    
    public com.vividsolutions.jts.geom.Point coordinates;
}
4

2 回答 2

2

几何状态和 R2DBC Postgres 驱动程序还有更多内容。请注意,这个领域的一切都在发展,所以事情可能会迅速改变。

从 0.8.5 版开始,R2DBC Postgres 驱动程序支持 Postgres 内部几何类型(pointline、 ...)。这些可以通过驱动程序类型等进行读写io.r2dbc.postgresql.codec.Point

R2DBC Postgres 驱动程序是使用扩展模型构建的,因此可以向驱动程序注册外部编解码器以支持 Postgres 类型扩展。

Postgis JDBC 驱动程序最近收到了请求R2DBC PostGIS 支持的功能请求。

最后一点是 Spring Data。它需要定义哪些类型是驱动程序原生类型,因此 Spring Data 可以传递复杂类型,而不是尝试映射这些类型。有一张公开票可以将 R2DBC Postgres 的类型视为简单类型。

然而,Spring Data 中不支持 JTS,因为主要关注的是持久性模型。

于 2020-09-07T14:01:35.617 回答
1

r2dbc 还不支持空间数据。

于 2020-09-03T02:08:55.667 回答