Postgis,Hibernate和QueryDSL SRID混合

时间:2018-06-01 10:51:17

标签: postgis querydsl hibernate-spatial

我有一个带有srid系统900913的几何列的Postgis数据库。如果得到一个hibernate-spatial映射列到com.vividsolutions.jts.geom.Geometry。我还使用QueryDSL来创建查询。

我知道在srid系统900913中使用WKT字符串获取请求。我想查询与WKT字符串相交的实体。

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

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

我知道有一个错误,即postgres中有混合srid系统。

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))

它有效。但我不想一直转换我的数据库中的每个entrie ...

0 个答案:

没有答案