Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过Spring boot查询区域内的点?_Java_Spring Boot_Postgis - Fatal编程技术网

Java 如何通过Spring boot查询区域内的点?

Java 如何通过Spring boot查询区域内的点?,java,spring-boot,postgis,Java,Spring Boot,Postgis,如果我在pgAdmin4中运行这个查询命令,它可以正常工作。 但当我运行spring boot项目时,发生了一个错误: @Query("SELECT w FROM ${WalkEntity.TABLE_NAME} AS w WHERE ST_Within(w.start_point, ST_MakePolygon('LINESTRING(41.15294130710586 113.20090225705104, 41.15294130710586 115.97018471050012, 37.5

如果我在pgAdmin4中运行这个查询命令,它可以正常工作。 但当我运行spring boot项目时,发生了一个错误:

@Query("SELECT w FROM ${WalkEntity.TABLE_NAME} AS w WHERE ST_Within(w.start_point, ST_MakePolygon('LINESTRING(41.15294130710586 113.20090225705104, 41.15294130710586 115.97018471050012, 37.53742712587926 115.97018471050012, 37.53742712587926 113.20090225705104, 41.15294130710586 113.20090225705104)')) AND w.visibility=0 AND w.state=0 ORDER BY w.start_time DESC")

@Query(“从${WalkEntity.TABLE_NAME}w中选择w,其中ST_DistanceSphere(w.start_point,ST_MakePoint(?1,?2))我假设这是SQL查询。因此您必须将nativeQuery设置为true:

@Query("SELECT w FROM ${WalkEntity.TABLE_NAME} w WHERE ST_DistanceSphere(w.start_point, ST_MakePoint(?1, ?2)) <= ?3*1000" +
            " AND w.visibility=${WalkEntity.VISIBLE_TO_ALL} AND w.state=${WalkEntity.STATE_VISIBLE}" +
            " ORDER BY w.start_time DESC")
    fun findNearby(latitude: Double, longitude: Double, km: Int, pageable: Pageable = PageRequest.of(0, 18)): List<WalkEntity>

另一方面,坐标必须先表示为经度,然后表示为纬度。您的问题已解决。但使用JPA查询时发生另一个错误。
在ResultSet
中找不到列。我在entity类中有该列。方法签名是什么?很抱歉,我的英语不好。最后,我在本页找到了解决方案:
@Query("SELECT w FROM ${WalkEntity.TABLE_NAME} w WHERE ST_DistanceSphere(w.start_point, ST_MakePoint(?1, ?2)) <= ?3*1000" +
            " AND w.visibility=${WalkEntity.VISIBLE_TO_ALL} AND w.state=${WalkEntity.STATE_VISIBLE}" +
            " ORDER BY w.start_time DESC")
    fun findNearby(latitude: Double, longitude: Double, km: Int, pageable: Pageable = PageRequest.of(0, 18)): List<WalkEntity>
@Query("SELECT w FROM ${WalkEntity.TABLE_NAME} AS w WHERE ST_Within(w.start_point,  ST_MakePolygon('LINESTRING(41.15294130710586 113.20090225705104, 41.15294130710586 115.97018471050012, 37.53742712587926 115.97018471050012, 37.53742712587926 113.20090225705104, 41.15294130710586 113.20090225705104)')) AND w.visibility=0 AND w.state=0 ORDER BY w.start_time DESC"
, nativeQuery=true)