如何使用postgis和Hibernate Spatial 5.2正确映射带有SRID的多边形

时间:2017-06-19 00:06:47

标签: java postgis hibernate-spatial

我有一个java实体类,其列的注释如下:

@Column(name = "extent", columnDefinition = "geometry(Polygon,4326)")
private Polygon extent;

当我测试这个时,我收到一条错误消息,告诉我SRID丢失了。 这是有道理的,因为Polygon没有任何关联的坐标引用系统(CRS),并且删除CRS可以解决问题。

在保留SRID信息的同时,是否可以通过Hibernate访问此列?在任何谈论这个问题的地方我都找不到任何例子。

谢谢

2 个答案:

答案 0 :(得分:0)

原来,Polygon有一个setSRID(int)方法,用于设置SRID。杜!

答案 1 :(得分:0)

public final static int SRID = 4326;    
Polygon polygon = geometryFactory.createPolygon(shellCoordinates.stream().toArray(n -> new Coordinate[n]));
polygon.setSRID(SRID);