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 映射到视图而不是表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Eclipse Hibernate 工具对启用 PostGIS 的数据库进行逆向工程?
如何使用 Hibernate 在 PostGIS 中将 geojson(在 javascript 中)保存到几何(MultiPolygon,4326)