使用弹簧靴jpa将经度和纬度作为几何位置存储为Postgres中的Point。
应用下面的代码后,它引发:列“ location”是点类型,而表达式是bytea类型。
在获取数据时也会引发: 无法反序列化;嵌套的异常是org.hibernate.type.SerializationException:无法反序列化
在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.4.1.Final</version>
</dependency>
在实体类中添加列。
@Column(columnDefinition = "POINT")
private Point location;
用于将数据存储到数据库中
GeometryFactory geometryFactory = new GeometryFactory();
Coordinate coordinate = new Coordinate();
coordinate.x = 2;
coordinate.y = 5;
Point myPoint = geometryFactory.createPoint(coordinate);
user.setLocation(myPoint);
我需要将数据以(30.5,53.123)格式存储在Postgres中。
答案 0 :(得分:0)
在Postgresql中添加postgis的扩展名。按照以下查询在特定架构中添加扩展名。
create extension POSGIS
并使用space.dialect.postgis.PostgisDialect更改休眠方言