PostgisDialect与PostgreSQLDialect还是两者兼有?

bal*_*teo 4 postgresql hibernate jpa postgis hibernate-spatial

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

  • PostgreSQL
  • Postgis
  • JPA /休眠
  • 弹簧
  • Spring Data JPA

我从Hibernate Spatial文档中了解到,必须使用以下方言: org.hibernate.spatial.dialect.postgis.PostgisDialect

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

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

Postgis方言中是否可以使用最新标准Posgresql方言的所有功能?

我想我不能在同一个entityManager工厂上使用多个/多个方言。那么,什么是最好的方法才能同时兼顾两种方言呢?

Joh*_*ell 5

PostgisDialect实际上是对Postgresql方言的扩展,因此,是的,它是一个超集。请参阅类声明:PostgisDialect类声明

这里有一个很好的教程:使用Postgis休眠空间,表明您只需要包括Postgis方言就可以同时保留空间字段和非空间字段。

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