问题标签 [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 投票
0 回答
278 浏览

lucene - 休眠索引嵌入式空间实体

情景

班干部、班办、班办职员。

班级办公室是一个空间实体,可以搜索并按预期返回结果。

Office-Employee 之间的多对多关系与OfficeEmplyee类映射。

现在我需要根据某个范围内的某些人执行搜索。换句话说,我必须检查范围内的办公室和存在于这些办公室的员工,即搜索OfficeEmployee实体。

所有三个类都被索引。

办公室雇员

班级办公室

查询:

问题

现在我想在关系表 (OfficeEmployee) 上执行我的搜索。

但听起来我无法让它工作!我查了教程,找不到这样的例子。

  • 是否可以像我解释的那样使用当前索引的实体?
  • 我是否必须在 OfficeEmployee 中包含 @Spatial ?但这需要单独建立新的索引,我想使用当前索引的索引。
  • 当我运行搜索时,它说我需要检查@Spatial 和@SpatialFieldBridge,即使我这样注释,结果也是空的。
  • 如果我的空间实体正在实现坐标并且没有单独的坐标字段,@ContainedIn 应该放在哪里?

谁能指出我正确的方向?

0 投票
1 回答
538 浏览

java - HibernateException:位置在 2D 中是共线的

我正在使用 Hibernate Spatial 版本 5.0.7.Final 作为 ORM。有时,当我使用 Geometry 作为命名参数执行查询时,会出现以下异常:

我了解有时我的几何图形是共线的,并且库NumericalMethods中的模块Geolatte正在检查我的几何图形是否isCounterClockwise会引发此异常。

我想知道为什么它会这样做,但更重要的是,我可以做些什么来避免这个错误。

NumericalMethods.java下面的 Hibernate 代码只检查前三个坐标。就我而言,有时这三个第一个坐标是共线的,但第四个坐标会使它成为有效的多边形。我想不出为什么它不会遍历其余的坐标来判断它是否是逆时针方向。

完整的堆栈跟踪:

0 投票
1 回答
893 浏览

java - JTS 中的地理数据类型

我最近发现了在项目中处理地理类型时使用 JTS 库的潜力。我使用休眠作为我的 ORM(包括休眠空间)。

在知道 JTS 的存在之前,我将坐标存储在一个名为 LatLon 的自定义类中;每当我想管理折线时,我都会创建它们的列表,例如 List。我意识到在数据库中进行 CRUD 操作时的性能有多糟糕。

所以,正如我之前告诉过你的,我发现我的 LatLon 课程可以被 JTS 的 Point 课程取代。我开始实现它并替换 LatLon 属性,但我有几个问题:

  1. 我使用 XML(不是注释)映射我的类。以下是正确的吗?

    (Java 类)

    ... private Point puntoInicio; ...

    (XML 映射)

    <property name="puntoInicio" type="org.hibernate.spatial.GeometryType" column="RUTA_PUNTOINICIO" not-null="true" />

  2. 如何存储折线?我没有找到任何名为折线的数据类型。但是,我发现了像 LineString 这样的其他人。我可以用它来表示折线吗?我如何映射它们?

太感谢了!

编辑:我正在使用 Hibernate 5.0.7.Final + Hibernate Spatial 5.0.7.Final

编辑 2:对不起,我的延误和不接受任何答案。我前段时间撤消了整个修改,但我想以这种方式修改和实现。感谢您的时间和耐心。

0 投票
0 回答
887 浏览

hibernate - 使用 JPARepository 查询时排除字段

我知道当用@Transient标记一个字段时,该字段将在 persistence 期间被排除。但就我而言,我只想在 find() 函数中忽略它,而不是在 save() 函数中。

例如:

myJpaRepository.save(myModel) 将像往常一样保存模型

myJpaRepository.find(id) 将查询对象但忽略我想要的字段。

由于我正在使用 Hibernate 空间,因此我的属性之一是 com.vividsolutions.jts.geom.Point,当执行 myJpaRepository.find(id) 之类的操作时,它会引发如下异常:

我确切地知道这是 PostgreSQL 的 Hibernate 空间点的错误,但我找不到解决它的确切解决方案,我的解决方法是在查询时忽略该字段,但我不知道该怎么做。

0 投票
0 回答
383 浏览

java - com.vividsolutions.jts.geom.Geometry 的 getLength() 方法的单位是什么

我正在使用 Hibernate Spatial 开发 Web 应用程序。我有 MULTILINESTRING 类型的 Geometry 并在以下代码片段中使用 geometry.getLength() 计算几何的长度:

现在的问题是“长度”的单位是什么?我怎样才能得到以米为单位的长度?

0 投票
1 回答
351 浏览

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

这是我的设置:

  • PostgreSQL 9.3
  • 地理信息系统 2.1.4
  • 日食火星
  • 休眠工具 5.0
  • 休眠空间4.35.0

我还添加了postgis-jdbc.jarjts.jar构建路径。

.cfg.xml文件打开:

在该reveng.xml文件中,包含几何类型字段的表使用table-filter元素显式声明:

Hibernate 代码生成配置正在为几何类型字段创建具有这种属性和方法的 POJO:

Hibernate Spatial 教程中,几何字段映射到 JTS 类型,例如 ( com.vividsolutions.jts.geom.Point)。因此,使用此代码不可能遵循那里提出的机制来检索/更新空间字段。

是否可以以某种方式调整 Hibernate 配置以生成从空间字段到 JTS 类型的映射?Serializable还是必须改用这些生成的属性?

更新:Hibernate Spatial 邮件列表中的 Bakc我被告知我应该有匹配的 Hibernate Spatial 和 Hibernate 版本。官方网站上没有 Hibernate Spatial 5.0.7,但我在其他地方找到了它。即使使用这些匹配版本,我也会Serializable在生成的 POJO 中获取类型字段。

0 投票
2 回答
2403 浏览

hibernate - Wildfly 10 上的空间休眠 5

我正在使用 Wildfly 10 并使用带有 PostGIS 数据库的 Spatial Hibernate 5 开发应用程序。我在运行时收到以下错误。

谁能推荐一些关于如何将 Spatial Hibernate 与 Wildfly 10 一起使用的好教程?

0 投票
1 回答
414 浏览

hibernate - 将 hbm.xml 文件更新为 hibernate 5 的 hibernate.spatial.GeometryType

我有一个 Location.hbm.xml 文件,其中包含以下行:

我们正在更新到休眠 5,并且不再有 GeometryType 对象。我应该改用什么类?

0 投票
1 回答
383 浏览

hibernate-5.x - 休眠空间 5 和 MySQL 5.7

我正在使用 Hibernate Spatial 5.0.7 和 MySQL 5.7。

我需要使用 MySQL ST_* 精确空间运算符,为此我应用 MySQLSpatial56Dialect,但是如果我使用这种方言,则无法从数据库中正确检索几何数据类型。使用 MySQL 5.6 版本时不会发生这种情况。

我错过了什么?

0 投票
2 回答
705 浏览

java - Hibernate 5 是否仍然支持 Hibernate Spatial?

根据以下链接:

http://docs.jboss.org/hibernate/orm/5.1/quickstart/html_single/#_release_bundle_downloads

应该有一个包含休眠空间 jar 的文件夹“lib/spatial”,但它似乎是标准下载的 lib 文件夹中缺少的一个文件夹。(我尝试过 Hibernate 版本 5.0.6、5.0.8 和 5.1.0)。