Hibernate Spatial PostGIS 1.1.1 映射到视图而不是表

Posted

技术标签:

【中文标题】Hibernate Spatial PostGIS 1.1.1 映射到视图而不是表【英文标题】:Hibernate Spatial PostGIS 1.1.1 mapping to views instead of tables 【发布时间】:2018-04-25 13:35:04 【问题描述】:

在GeoFence 启动时,它声明它找不到关系geofence.gf_gfuser我的架构名称是地理围栏。

我使用的是 SQL 视图而不是表。 This post 声明 Hibernate 从视图中读取不会有问题。那么为什么会出现这个错误呢?

任何见解将不胜感激。

堆栈跟踪:

Caused by: org.postgresql.util.PSQLException: ERROR: relation "geofence.gf_gfuser" does not exist

其他配置

geofence-datasource-ovr.properties

geofenceVendorAdapter.databasePlatform=org.hibernatespatial.postgis.PostgisDialect
geofenceDataSource.driverClassName=org.postgresql.Driver
geofenceDataSource.url=jdbc:postgresql://<host>:<port>/<db>
geofenceDataSource.username=<username>    
geofenceDataSource.password=<password>
geofenceEntityManagerFactory.jpaPropertyMap[hibernate.default_schema]=<schema>

geofenceEntityManagerFactory.jpaPropertyMap[hibernate.hbm2ddl.auto]=none
geofenceEntityManagerFactory.jpaPropertyMap[javax.persistence.validation.mode]=none
geofenceEntityManagerFactory.jpaPropertyMap[hibernate.validator.apply_to_ddl]=false
geofenceEntityManagerFactory.jpaPropertyMap[hibernate.validator.autoregister_listeners]=false

【问题讨论】:

【参考方案1】:

我最终使用Foreign Data Wrapper PostgreSQL 插件连接到视图。

由于 FDW 连接到数据库并引用表/视图并创建外部表,因此将 GeoFence 链接到这些表而不是视图欺骗它使用表。

注意:我的外部表和视图在不同的架构中,但在同一个数据库中。

【讨论】:

以上是关于Hibernate Spatial PostGIS 1.1.1 映射到视图而不是表的主要内容,如果未能解决你的问题,请参考以下文章

hibernate-spatial jpa 距离查询

超融合时序数据库YMatrixDB与PostGIS案例

超融合时序数据库YMatrixDB与PostGIS案例

如何使用 Eclipse Hibernate 工具对启用 PostGIS 的数据库进行逆向工程?

如何使用 Hibernate 在 PostGIS 中将 geojson(在 javascript 中)保存到几何(MultiPolygon,4326)

为啥在尝试将 Hibernate Spatial 用于 Spring Boot 项目时出现此错误?实例化异常