问题标签 [hibernate-spatial]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - Grails + Hibernate-Spatial + Postgis:冲突
我在尝试通过 hibernate-spatial-postgresql 插件使用 Grails 2.4.3 和 PostGIS 数据库设置项目时遇到了很多麻烦。这是一个示例项目,除了默认插件外没有安装其他插件。我首先启用了 Postgres,尝试将域保存到我的数据库:一切正常。但是一旦我启用了休眠空间,它就不再起作用了。
我和这个人有完全相同的问题。
我尝试像他一样排除“hibernate-core:3.6.0.Final”,但我一直收到同样的错误。可能是因为他使用 Grails 2.3.0 而我使用的是 2.4.3。
我删除了 BuildConfig.groovy 文件的插件部分下的依赖项“hibernate-spatial-postgresql”,仍然出现相同的错误。
我真的不知道我应该寻找什么。这肯定是两个库之间的冲突,或者两个版本的hibernate/hibernate-spatial。
我想知道这里是否有人设法让 Grails 和空间数据库一起玩得很好?如果是这样,您使用的是哪个数据库?你是怎么配置的?
编辑:我已经尝试用 Hibernate 3 替换“插件”部分下的 Hibernate4 依赖项BuildConfig.groovy
(在 Grails 生成的文件中注释),然后排除'org.hibernate:hibernate-core:3.6.0.Final'
. 排除'org.hibernate:hibernate-core:3.6.10.17'
也不起作用。
非常感谢您提供的任何答案。
问候。
java - 是否可以使用 Hibernate-Spatial over Oracle 读取 SDO_POINT 的 Z 组件?
我正在使用 Hibernate-Spatial 将com.vividsolutions.jts.geom.Point
实体中的SDO_POINT
字段映射到我的 Oracle 11g 表中的字段。
表中的列定义为:
该列映射为:
(@QueryType
注释来自 QueryDSL,因此可能不相关,但为了完整起见,我将其包括在内)
以下是 SDO_POINT 列的内容示例(如 SQLDeveloper 中所示):
一切正常,只是我无法读取 point 的 Z 分量。该类Point
只有getX()
和getY()
访问器。
我试图org.hibernate.spatial.jts.mgeom.MCoordinate
通过方法访问底层对象,getCoordinate()
但 Z 值等于 Y 值。
任何人都可以帮助我使用 Hibernate-Spatial 获得 Z 值吗?还是只是不支持?
java - 休眠空间函数不断抛出意外的 AST 节点
我正在尝试查询我的实体之间的空间关系,但不断收到此异常:
我的实体工作正常,映射也是如此。我相信我的查询有问题:
其中 r.regiao 和 i.latln 都是 GeometryType 映射的(一个是多边形,另一个是点。
Ps.:当我问这个问题时,我终于明白了这个问题。
java - 休眠空间ServiceConfigurationError
嘿,我一直在尝试设置 Hibernate Spatial 来查询存储在 PostGreSQL 中的地理数据。尝试运行我的代码时出现以下错误。
SessionFactoryCreation 的代码
如果我从我的依赖项和代码中删除休眠空间,它工作正常。但我真的需要使用 Spatial,因为我的表包含经纬度数据
oracle - 带有oracle的gvnix 1.4
我已经在 JBoss AS 7.3 和 Oracle 11g 上安装了 gvnix geo-petclinic 示例,没有任何问题。
但是当我访问屏幕 Maps -> Mapview 时,我在日志中收到此错误:
16:55:17,624 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (http-localhost/127.0.0.1:8080-4) SQL 错误:6553,SQLState:65000
16:55:17,624 错误 [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (http-localhost/127.0.0.1:8080-4) ORA-06553: PLS-306: número o tipos de argumentos erróneos al llamar a ' FROM_SDO_GEOM'
查看“src/main/java/org/gvnix/domain/Owner_Roo_GvNIXEntityMapLayer.aj”中的代码,我更新了以下方法并运行良好。
这是gvNIX中的一个错误?也许它可以修复下一个版本
postgresql - JPA与很多孩子创建父/子关系
我正在尝试使用 JPA 方法创建将实体Track与子实体TrackPoints一起存储。但是,将Track与其子TrackPoint一起存储会持续很长时间 - 大约 30 秒。我试过GenerationType.Identity和GenerationType.SEQUENCE。如果我还有 Hibernate Spatial (Postgis) 列,它会持续更长时间 - 大约 60 秒来存储父级和所有子级。JPA 依次发送插入,一个接着另一个。我该如何优化呢?谁能告诉我主要问题是什么?
技术:
- Wildfly 8.1、JPA 2.1(休眠)、休眠空间、EJB、JTA
- PostgreSQL 9.3 + PostGis - 默认设置(只需从 Ubuntu 软件包安装)
轨道.java
TrackPoint.java
TrackService.java
道服务.java
持久性.xml
已编辑
所以我试过了,在 Hibernate 中批量插入,但我仍然有 30 秒的时间来节省 2000 点。
hibernate - 如何使用 Hibernate 在 PostGIS 中将 geojson(在 javascript 中)保存到几何(MultiPolygon,4326)
我正在开发一个 jsf 项目(2.2 版)。我在 javascript 中有一个 geoJson 对象。另一方面,我在 PostGIS 中有一个几何类型(MultiPolygon,4326)的列。我正在使用 Hibernate 4.3.8 和 Postgresql 9.3。
模型类中的几何列定义
我还在我的项目中包含了 Hibernate Spatial 4.x,我可以访问托管 bean 中的 geojson 字符串。但我不知道如何将这个 geojson 插入我的数据库。可能我必须解析geojson并从geojson坐标创建多边形对象并传递给我的数据库。但我没有成功。这样做的方法是什么?
提前致谢。
jackson - 如何从 Spring REST 控制器获取 geoJSON?
我正在使用 java(Spring-4.1.5 + Hibernate-4.3.8) 和 OpenLayers 开发一个 GIS 应用程序。对于这个项目,我使用GeoTools-13RC
、和。在这个项目中,我在客户端和服务器中都有一个层,我将该层的功能保存在一个类中。我定义了下面的类:HibernateSptial-4.3
jts-1.13
jackson-2.5
在启动应用程序时,我需要在客户端初始化层。为此,我需要从服务器端向该层的客户端返回一个 json 字符串。我不想使用ST_AsGeoJson
或其他匹配。我使用 Spring REST 控制器返回我的 Entity。
我该怎么办?
oracle - 定义 PostGIS 连接时找不到 Oracle 连接
我有一个在 Tomcat 8.0.20 上运行 Spring 3.1.1、Hibernate 3.6.0.Final 和 Hibernate Spatial 1.1.1 的应用程序。到目前为止,我们使用的是 Oracle 11.2.0.4,但我们想迁移到 PostgreSQL 9.2-1002.jdbc4 / PostGIS 2.1.6。
我们将在不同阶段迁移数据库模式,因此在某个阶段,我们将需要一些连接来使用 Oracle 和一些 PostGIS。为了开始开发和测试,我删除了所有 Oracle Maven 依赖项并添加了必要的依赖项以使用 Postgres,如Hibernate Spatial 1.1.1 Tutorial中所述,主要是:
在 Tomcat context.xml中,我现在已经配置了一个连接:
这工作正常。我可以先在其几何字段中使用空值将记录插入数据库,然后使用该点的坐标值对其进行更新。该字段定义为:
这行得通,没问题。只要我包含 Oracle 的 Maven 依赖项,问题就会出现:
即使我没有配置任何额外的连接,也没有更改项目中的任何内容以使用 Oracle,该记录仍按预期插入 Postgres,但在更新其 Geometry 字段时,我将堆栈跟踪粘贴在下面,即即使连接保持不变,也会出现意外的“查找 Oracle 连接的问题”。
org.hibernatespatial.helper.FinderException:无法从 PreparedStatement 获取 OracleSpatial Connection 对象。
我不明白为什么 Hibernate 能够将数据插入数据库,但是在尝试更新空间数据时会寻找 Oracle 连接,只有当我添加了一个不应该使用的 Oracle Maven 依赖项时,我保持我为 PostGIS 配置的连接。
知道我可能做错了什么吗?
提前致谢。
编辑:似乎在启动 Tomcat 并初始化 GeometryUserType 时,使用 null 作为属性调用配置方法。所以它默认为一个spatialDialect,它将是它从可用中找到的第一个。由于有两个(Oracle 和 PostGIS),它只会选择第一个(恰好是 Oracle)。
所以我必须在配置中遗漏一些东西,但我认为去 * persistence.xml * 并声明持久性单元应该使用该方言就足够了。
jpa - 使用 Hibernate Spatial 将 MultiPolygon 几何持久保存到 PostgreSQL 数据库
我正在学习休眠空间并尝试遵循本教程
我正在尝试将 MultiPolygon 持久化到 Postgres 数据库。
我的数据库脚本:
我在我的项目中使用这些依赖项:
我的实体类如下所示:
我的持久化xml
JPAUtil 类:
来电:
例外:
我不知道有什么问题。我试图用 com.vividsolutions.jts.geom.Geometry、org.postgis.Geometry、org.postgis.MuliPolygon 替换 MultiPolygon,试图将 columnDefiniton 指定为“Geometry(multipolygon,4326)”,但无济于事。
我唯一能想到的是我的依赖关系被搞砸了,但我也尝试过将 hibernate-spatial 4.0.1 与 hibernate 4.2.0 一起使用。这并没有帮助。