在PostgreSQL和JPA / Hibernate中使用Point类型

有没有一种方法可以将Point列映射到Java实体字段?

我尝试了Hibernate Spatial 4.0,但似乎没有PostGIS的纯PostgreSQL就无法使用。这是点字段定义:

import com.vividsolutions.jts.geom.Point;

...

@Column(columnDefinition = "point")

@Type(type = "org.hibernate.spatial.GeometryType")

private Point location;

persistence.xml中的方言:

<property name="hibernate.dialect"  value="org.hibernate.spatial.dialect.postgis.PostgisDialect" />

当我尝试保留该实体时,会引发异常:

org.postgresql.util.PSQLException: Unknown type geometry.

at org.postgresql.jdbc2.AbstractJdbc2Statement.setPGobject(AbstractJdbc2Statement.java:1603)

at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1795)

at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:37)

at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:46)

at org.hibernate.spatial.dialect.AbstractJTSGeometryValueBinder.bind(AbstractJTSGeometryValueBinder.java:48)

at org.hibernate.spatial.dialect.AbstractJTSGeometryValueBinder.bind(AbstractJTSGeometryValueBinder.java:39)

at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:280)

at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:275)

at org.hibernate.type.AbstractSingleColumnStandardBasicType.nullSafeSet(AbstractSingleColumnStandardBasicType.java:57)

似乎它试图将值保留为PostGIS的Geometry类型。但是我只想使用简单的Point。

回答:

您应该尝试在数据库中将类型指定为Geometry,但我也没有设法使用mySQL做到这一点。几何对于点很有效。

以上是 在PostgreSQL和JPA / Hibernate中使用Point类型 的全部内容, 来源链接: utcz.com/qa/420986.html

回到顶部