Смешение Postgis, Hibernate и QueryDSL SRID - PullRequest
0 голосов
/ 01 июня 2018

У меня есть база данных Postgis с геометрическим столбцом с системой srid 900913. Если есть hibernate-пространственное отображение столбца в com.vividsolutions.jts.geom.Geometry.Я также использую QueryDSL для создания запросов.

Я знаю, что получаю запрос со строкой WKT в srid-системе 900913. Я хочу запросить объекты, пересекающие строку WKT.

WKTReader reader = new WKTReader(
    new GeometryFactory(new PrecisionModel(), 900913));

// only the part which creates the clause
qSample.geom.intersects(reader.read(wktString))

Я знаю, что получаю ошибку, потому что есть смешанные srid-системы от postgres.

o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 0, SQLState: XX000
o.h.engine.jdbc.spi.SqlExceptionHelper   : ERROR: Operation on mixed SRID geometries

Я обнаружил, что если я преобразую wktString "вручную" в epsg 4326, а затем создаю запроскак

qSample.geom.transform(4326).intersects(reader.read(wktStringIn4326))

это работает.Но я не хочу постоянно конвертировать каждую запись в моей базе данных ...

...