如何在 Spring Boot 中使用 ST_CONTAINS?

塞拉斯特·兰布

我有一个功能齐全的服务器,提供随机文章,保存在 MySQL 数据库中,我想让在多边形内查找文章成为可能。

我发现 MySQL 已经支持PolygonPoint所以我只使用了ST_CONTAINS,它也被支持。由于文章确实有嵌入的纬度和经度,我想我可以创建一个点并尝试找出它是否包含在多边形中。

import org.springframework.data.geo.Polygon;

// ...I pass the JPA declaration...

@Query("SELECT an " +
       "FROM Announce as an " +
       "WHERE ST_CONTAINS(?1, Point(an.latLng.longitude, an.latLng.latitude))")
List<Announce> findAllInPolygon(Polygon polygonPoints);

我没有看到错误,但在运行时,我收到一个致命错误:

Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: 
unexpected AST node: ( near line 1, column 80 [SELECT an FROM com.desoftmotion.findnow.domain.Announce 
as an WHERE ST_CONTAINS(POLYGON(?1), Point(an.latLng.longitude, an.latLng.latitude))]

我不明白,因为我认为ST_CONTAINS是已知的。

塞拉斯特·兰布

经过一番研究,我发现ST_CONTAINS应该与true. 就像是

@Query("SELECT an "
       "FROM Announce as an " +
       "WHERE true = ST_CONTAINS(?1, Point(an.latLng.longitude, an.latLng.latitude))")

它对我有用,尽管我没有任何结果。

而且,Point即使它被 MySQL 理解,它也不能被 JPA 很好地映射。所以我连接了像

GeomFromText(CONCAT('POINT(', an.latLng.longitude, ' ', an.latLng.latitude, ')'))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Spring Boot中使用CommonsMultipartResolver

来自分类Dev

如何在Spring Boot中使用推土机?

来自分类Dev

如何在Spring Boot中使用分割项目

来自分类Dev

如何在Spring Boot中使用websocket并响应js?

来自分类Dev

如何在Spring Boot Controller中使用Jquery AJAX

来自分类Dev

如何在Spring Boot中使用@Valid验证对象?

来自分类Dev

如何在Spring Boot中使用Spring托管的Hibernate拦截器?

来自分类Dev

如何在Flyway中使用Spring Boot / Spring Security的JDBC身份验证

来自分类Dev

如何在 Spring Boot 和 Spring Data 中使用两个 Cassandra 数据源?

来自分类Dev

如何在使用Java而不是XML的Spring Boot中使用hbase?

来自分类Dev

如何在使用注释的Spring Boot应用程序中使用ibatis?

来自分类Dev

如何在Spring Boot / Data Neo4j中使用Bolt驱动程序

来自分类Dev

Spring Boot如何在调用的方法中使用自动装配的类属性

来自分类Dev

如何在Spring Boot中使用MultipartConfigElement一次上传多个文件?

来自分类Dev

如何在Spring Boot中使用带注释的参数解析器?

来自分类Dev

在Spring Boot中如何在手动新实例中使用@Autowired

来自分类Dev

如何在非Spring Boot项目中使用@Scheduled批注

来自分类Dev

如何在具有JDBC安全性的Spring Boot中使用Flyway?

来自分类Dev

如何在Spring Boot中使用@Bean创建或配置Rest模板

来自分类Dev

如何在Spring Boot应用程序中使用配置(properties / yml)文件中的属性?

来自分类Dev

如何在Spring Boot中使用实体解决SQL语法错误?

来自分类Dev

如何在Spring Boot / picocli可执行jar中使用relative-path-parameter?

来自分类Dev

如何在Spring Boot中使用正则表达式输入字段进行验证

来自分类Dev

如何在Spring Boot单元测试中使用依赖注入?

来自分类Dev

如何在skaffold和dekorate中使用spring boot maven插件build-image?

来自分类Dev

如何在Spring Boot中使用Mapstruct映射父母和孩子?

来自分类Dev

如何在Spring Boot中使用同步工厂配置出站通道适配器

来自分类Dev

如何在Spring Boot中使用内部类并将其映射为列字段变量?

来自分类Dev

如何在具有JDBC安全性的Spring Boot中使用Flyway?

Related 相关文章

  1. 1

    如何在Spring Boot中使用CommonsMultipartResolver

  2. 2

    如何在Spring Boot中使用推土机?

  3. 3

    如何在Spring Boot中使用分割项目

  4. 4

    如何在Spring Boot中使用websocket并响应js?

  5. 5

    如何在Spring Boot Controller中使用Jquery AJAX

  6. 6

    如何在Spring Boot中使用@Valid验证对象?

  7. 7

    如何在Spring Boot中使用Spring托管的Hibernate拦截器?

  8. 8

    如何在Flyway中使用Spring Boot / Spring Security的JDBC身份验证

  9. 9

    如何在 Spring Boot 和 Spring Data 中使用两个 Cassandra 数据源?

  10. 10

    如何在使用Java而不是XML的Spring Boot中使用hbase?

  11. 11

    如何在使用注释的Spring Boot应用程序中使用ibatis?

  12. 12

    如何在Spring Boot / Data Neo4j中使用Bolt驱动程序

  13. 13

    Spring Boot如何在调用的方法中使用自动装配的类属性

  14. 14

    如何在Spring Boot中使用MultipartConfigElement一次上传多个文件?

  15. 15

    如何在Spring Boot中使用带注释的参数解析器?

  16. 16

    在Spring Boot中如何在手动新实例中使用@Autowired

  17. 17

    如何在非Spring Boot项目中使用@Scheduled批注

  18. 18

    如何在具有JDBC安全性的Spring Boot中使用Flyway?

  19. 19

    如何在Spring Boot中使用@Bean创建或配置Rest模板

  20. 20

    如何在Spring Boot应用程序中使用配置(properties / yml)文件中的属性?

  21. 21

    如何在Spring Boot中使用实体解决SQL语法错误?

  22. 22

    如何在Spring Boot / picocli可执行jar中使用relative-path-parameter?

  23. 23

    如何在Spring Boot中使用正则表达式输入字段进行验证

  24. 24

    如何在Spring Boot单元测试中使用依赖注入?

  25. 25

    如何在skaffold和dekorate中使用spring boot maven插件build-image?

  26. 26

    如何在Spring Boot中使用Mapstruct映射父母和孩子?

  27. 27

    如何在Spring Boot中使用同步工厂配置出站通道适配器

  28. 28

    如何在Spring Boot中使用内部类并将其映射为列字段变量?

  29. 29

    如何在具有JDBC安全性的Spring Boot中使用Flyway?

热门标签

归档