hibernate spatial error: type "geometry" does not exist

hibernate spatial error: type "geometry" does not exist

我想使用 hibernate spatial 来处理我的空间 objects.I 我正在使用 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更新schema时遇到的问题:

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 不支持几何类型。我使用 PgAdminIII。这是邮局。它支持 polygon 等数据类型。

我该如何解决这个问题?
没有答案的类似问题:Type geometry not found with postgis and hibernate-spatial

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

 C:\Program Files (x86)\OpenGeo\OpenGeo Suite\pgsql.1