休眠空间错误:类型“几何”不存在

时间:2015-01-31 14:29:17

标签: java hibernate geometry hibernate-mapping postgis

我想使用hibernate空间来处理我的空间对象。我正在使用hibernate-spatial-4.0.1hibernate 4.2。我的方言:

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

我有一个像这样的实体:

@Entity
@DiscriminatorValue(CK.LAYER_PICTURES)
public class PicsLayerItem extends LayerItem {

   @Column(name = "place_name")
   private String placeName;

   public void setPlaceName(String name) {
       this.placeName = name;
   }

   public String getPlaceName() {
       return this.placeName;
   }


   @Type(type = "org.hibernate.spatial.GeometryType")
   @Column(name = "locations", nullable = true)
   private LineString locations;

   public LineString getLocations() {
       return locations;
   }
}

当hibernate更新架构时,它遇到了这个错误:

ERROR [http-nio-8084-exec-53] org.hibernate.tool.hbm2ddl.SchemaUpdate.execute HHH000388: Unsuccessful: alter table public.tree_item add column locations GEOMETRY
ERROR [http-nio-8084-exec-53] org.hibernate.tool.hbm2ddl.SchemaUpdate.execute ERROR: type "geometry" does not exist

我想我的postgresql不支持geomtry类型。我用PgAdminIII。这是postgis。它支持polygon等数据类型。

enter image description here

我可以做些什么来解决这个问题? 类似的问题没有回答:Type geometry not found with postgis and hibernate-spatial

1 个答案:

答案 0 :(得分:0)

您的Postgresql不支持几何体。您需要为其添加postgis扩展名才能创建空间数据库。所以从here为postgresql下载合适的postgis扩展。然后将其安装在postgresql安装文件夹中,例如(在我的系统中)在以下路径中:

 C:\Program Files (x86)\OpenGeo\OpenGeo Suite\pgsql\9.1