如果遇到了如下错误,并且是应为GEO相关的错误,可以参考下面的配置方式

使用JPA 映射Point类型

  1. Maven的pom.xml中添加如下依赖

    <dependency>
        <groupId>com.vividsolutions</groupId>
        <artifactId>jts</artifactId>
        <version>1.13</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-spatial</artifactId>
        <version>5.2.5.Final</version>
    </dependency>
    
  1. 在entity中定义相关字段

    @Column(name = "locationpoint", columnDefinition = "POINT")
    private Point locationpoint;

  1. 在application.properties配置文件中定义“方言”

    # needed for Location domain class
    spring.jpa.properties.hibernate.dialect=org.hibernate.spatial.dialect.mysql.MySQL56InnoDBSpatialDialect
    

这个地方很重要,有一些dialect是没有实现的,因此只能这么用

  1. 使用

    locationRepository.findOne((long) 1).getLocationpoint().getX();
    locationRepository.findOne((long) 1).getLocationpoint().getY();
    

Tags: mysql geo, geometry, spring, springboot

Related Posts:

Leave a Comment