当我尝试将 Point 数据类型持久化到 postgres DB 时,它因错误而失败 org.postgresql.util.PSQLException:错误:列“pointColumn”是点类型,但表达式是几何类型
这是我的 pojo snappit
@Type(type="org.hibernate.spatial.GeometryType")
@Column(columnDefinition="Point", nullable = true)
private Point pointColumn;
这是我的驱动程序和方言属性
driverClass=org.postgresql.Driver
dialect=org.hibernate.spatial.dialect.postgis.PostgisDialect
这是我的空间版本详细信息
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>4.3</version>
</dependency>
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>1.13</version>
</dependency>
即使我已经将 GeometryType 注册到 jdbc 配置,如下所示
GeometryType geometryType = new GeometryType();
configuration.registerTypeOverride(geometryType);
对于 Polygon、LineString、Point、MultiPoint、MultiPolygon...即使这个问题也是如此
我是否遗漏了任何配置,或者它是几何类型实现的预期行为?
最佳答案
PosgreSQL 有一些 in-built geometry support .您正在尝试使用基础 pg 中的类型 point
,您需要将其更改为 geometry
,因为它是表示 PostGIS 中的点的几何。
关于java - Postgis 点数据类型未持久化到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517584/