6

我的应用程序将使用以下技术:

  • PostgreSQL
  • 邮政地理信息系统
  • JPA/休眠
  • 春天
  • 春季数据 JPA

我了解(来自 Hibernate Spatial 文档)必须使用以下方言:org.hibernate.spatial.dialect.postgis.PostgisDialect

我不明白的是上述方言与标准 Posgresql 方言有何关系,即org.hibernate.dialect.PostgreSQLDialect......

Postgis 方言是标准 Posgresql 方言的超集吗?

最新标准 Posgresql 方言的所有功能都可以在 Postgis 方言中使用吗?

我想我不能在同一个 entityManager 工厂上使用几种/多种方言......那么最好的做法是什么是最好的两种方言?

4

1 回答 1

6

PostgisDialect 实际上扩展了 Postgresql 方言,所以,是的,它是一个超集。见类声明:PostgisDialect 类声明

这里有一个很好的教程:Hibernate spatial with Postgis,它表明您只需要包含 Postgis Dialect 即可同时保留空间和非空间字段。

Postgis primary 在 Postgresql 之上提供对空间对象的支持。Postgis 安装还包括提供许多实际几何功能的 GEOS(Java 拓扑套件的 C++ 端口)、Proj4(提供对不同坐标系/投影的支持)和 GDAL(各种地理数据格式之间的转换实用程序)。

于 2014-05-31T17:00:25.447 回答