首页 > 解决方案 > Hibernate Spatial PostGIS 1.1.1 映射到视图而不是表

问题描述

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

我使用的是SQL 视图而不是表这篇文章指出,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

标签: geoserverpostgresql-9.6hibernate-spatial

解决方案


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

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

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


推荐阅读