问题标签 [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.

0 投票
1 回答
598 浏览

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'也不起作用。

非常感谢您提供的任何答案。

问候。

0 投票
1 回答
355 浏览

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 值吗?还是只是不支持?

0 投票
2 回答
2398 浏览

java - 休眠空间函数不断抛出意外的 AST 节点

我正在尝试查询我的实体之间的空间关系,但不断收到此异常:

我的实体工作正常,映射也是如此。我相信我的查询有问题:

其中 r.regiao 和 i.latln 都是 GeometryType 映射的(一个是多边形,另一个是点。

Ps.:当我问这个问题时,我终于明白了这个问题。

0 投票
1 回答
2378 浏览

java - 休眠空间ServiceConfigurationError

嘿,我一直在尝试设置 Hibernate Spatial 来查询存储在 PostGreSQL 中的地理数据。尝试运行我的代码时出现以下错误。

SessionFactoryCreation 的代码

如果我从我的依赖项和代码中删除休眠空间,它工作正常。但我真的需要使用 Spatial,因为我的表包含经纬度数据

0 投票
0 回答
161 浏览

oracle - 带有oracle的gvnix 1.4

我已经在 J​​Boss 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中的一个错误?也许它可以修复下一个版本

0 投票
1 回答
1190 浏览

postgresql - JPA与很多孩子创建父/子关系

我正在尝试使用 JPA 方法创建将实体Track与子实体TrackPoints一起存储。但是,将Track与其子TrackPoint一起存储会持续很长时间 - 大约 30 秒。我试过GenerationType.IdentityGenerationType.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 点。

0 投票
3 回答
1810 浏览

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坐标创建多边形对象并传递给我的数据库。但我没有成功。这样做的方法是什么?

提前致谢。

0 投票
2 回答
3264 浏览

jackson - 如何从 Spring REST 控制器获取 geoJSON?

我正在使用 java(Spring-4.1.5 + Hibernate-4.3.8) 和 OpenLayers 开发一个 GIS 应用程序。对于这个项目,我使用GeoTools-13RC、和。在这个项目中,我在客户端和服务器中都有一个层,我将该层的功能保存在一个类中。我定义了下面的类:HibernateSptial-4.3jts-1.13jackson-2.5

在启动应用程序时,我需要在客户端初始化层。为此,我需要从服务器端向该层的客户端返回一个 json 字符串。我不想使用ST_AsGeoJson或其他匹配。我使用 Spring REST 控制器返回我的 Entity

我该怎么办

0 投票
1 回答
968 浏览

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 * 并声明持久性单元应该使用该方言就足够了。


0 投票
1 回答
3232 浏览

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 一起使用。这并没有帮助。