Как репозиторий R2DBC работает с геометриями Postgis?

У меня было несколько классов сущностей, которые работали с Spring Data JPA. (Эти классы сущностей находятся в базе данных postgres с установленным postgis и содержат поля геометрии.)

Однако когда я перешел на 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;
}

person Tisha    schedule 10.06.2020    source источник
comment
Вам нужно будет использовать настраиваемый картограф, как указано в docs.spring.io/spring-data/r2dbc/docs/1.0.x/reference/html/   -  person nicholasnet    schedule 18.07.2020
comment
@Tisha, тебе удалось заставить это работать? В настоящее время я также пытаюсь использовать Postgis с R2DBC. Я написал собственный конвертер, как было предложено выше, но пока безрезультатно   -  person Jonck van der Kogel    schedule 03.09.2020
comment
@JonckvanderKogel Еще нет.   -  person Tisha    schedule 15.09.2020


Ответы (2)


Есть еще кое-что о состоянии геометрии и драйвере R2DBC Postgres. Обратите внимание, что все в этом пространстве развивается, поэтому все может быстро измениться.

Драйвер R2DBC Postgres поддерживает внутренние типы геометрии Postgres (point, line,…) начиная с версии 0.8.5. Их можно читать и записывать с помощью типов драйверов _ 3_ и так далее.

Драйвер R2DBC Postgres был построен с моделью расширения, поэтому внешние кодеки могут быть зарегистрированы с драйвером для поддержки расширений типов Postgres.

Драйвер Postgis JDBC недавно получил запрос функции с просьбой о поддержке R2DBC PostGIS.

Последний бит - Spring Data. Это требует определения того, какие типы являются собственными для драйвера типами, поэтому Spring Data может передавать сложные типы вместо того, чтобы пытаться их сопоставить. Есть открытый тикет, чтобы рассматривать типы R2DBC Postgres как простые единицы.

Однако в Spring Data нет поддержки JTS, поскольку основное внимание уделяется модели сохраняемости.

person mp911de    schedule 07.09.2020

r2dbc пока не поддерживает пространственные данные.

person Mandroid    schedule 03.09.2020