【问题标题】:How to use pologon postgis on query in spring-boot如何在spring-boot中使用pologon postgis查询
【发布时间】:2021-03-09 14:08:39
【问题描述】:

执行以下查询时出现此异常我使用 postgis 如何正确使用 pologon

无法提取结果集; SQL [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException: could not extract ResultSet

    @Query(name = "getCellIdsForRectangle", value = "SELECT * FROM lk_location as lk "
        + "LEFT JOIN lk_slocation as s "
        + "ON ST_DWithin(POLYGON((-4.43 54.31,-4.39 54.31,-4.39 54.29,-4.43 54.29,-4.43 54.31))\\:\\:GEOMETRY, ST_MakePoint(s.longitude,s.latitude)\\:\\:geometry, s.range) "
        + "WHERE ST_DWithin(POLYGON((-4.43 54.31,-4.39 54.31,-4.39 54.29,-4.43 54.29,-4.43 54.31))\\:\\:GEOMETRY, ST_MakePoint(lk.longitude,lk.latitude)\\:\\:geometry, lk.range) AND s.location_id IS NULL;", nativeQuery = true)
List<Location> getCellIdsForRectangle();

【问题讨论】:

    标签: java spring-boot postgis


    【解决方案1】:

    你是从文本构造一个多边形,所以多边形必须被引用

      + "ON ST_DWithin('POLYGON((-4.43 54.31,-4.39 54.31,-4.39 54.29,-4.43 54.29,-4.43 54.31))'\\:\\:GEOMETRY, ST_MakePoint(s.longitude,s.latitude)\\:\\:geometry, s.range) "
    

    【讨论】:

    • 在您编辑 JDBC 类型的无方言映射后出现此错误:1111;嵌套异常是 org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111
    • 'POLYGON((:longitude1 :latitude1,:longitude2 :latitude2,:longitude3 :latitude3,:longitude4 :latitude4,:longitude1 :latitude1)) @JGH
    猜你喜欢
    • 2018-08-07
    • 2018-06-02
    • 2022-12-20
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 2019-12-18
    相关资源
    最近更新 更多