java - Postgis 点数据类型未持久化到数据库中

标签 java hibernate postgresql postgis hibernate-spatial

当我尝试将 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/

相关文章:

java - 用于转换 future 的流利语法

postgresql - 如何将大型 csv 文件(~4GB)导入 PostgreSQL 数据库?

postgresql - 如何在 postgresql 中显示目录和模式?

java - MySQL 中默认的 Enum 值大小是多少

java - 插入数据库的集成测试问题

java - Spring MVC Hibernate 没有具有可用于当前线程的实际事务的 EntityManager - 无法可靠地处理 'persist' 调用

postgresql - SELECT FOR UPDATE 是否需要在 CTE 中进行更新?

java - JMeter 使用 JavaImported 导入定义的 JAR

java - Spring boot Http Security 配置单元测试

java - 字符串 - 全局设置