【发布时间】:2020-09-30 01:36:01
【问题描述】:
我有一个 JpaRespository 的本地查询:
@Query(value = "SELECT * FROM Feature f WHERE f.feature_type = :featureType AND " +
"ST_DWithin(geometry, 'SRID=:srid;POINT(:lon :lat 0)', :range)", nativeQuery = true)
生成的查询如下:
SELECT * FROM Feature f WHERE f.feature_type = ? AND ST_DWithin(geometry,'SRID=:srid;POINT(:lon :lat 0)', ?)
几何是表中包含空间数据的列。
但跟踪也表明查询存在解析错误:
Hint: "SR" <-- parse error at position 2 within geometry
但是当我在数据库中执行查询时,我得到了正确的结果。
为什么会出现这种不匹配?
我终于可以通过以下方式解决它:
@Query(value = "SELECT * FROM Feature f WHERE f.feature_type = :featureType AND " +
"ST_DWithin(geometry, ST_GeographyFromText('SRID=' || :srid || ';POINT(' || :lon ||' ' || :lat || ' 0)'), :range)", nativeQuery = true)
【问题讨论】: