gpt4 book ai didi

hibernate - 使用 Hibernate 5 ORM 的空间谓词

转载 作者:行者123 更新时间:2023-12-03 07:02:30 24 4
gpt4 key购买 nike

我正在将现有应用程序从 Hibernate 3.6.10.Final(带有 hibernate-spatial 1.1.1)迁移到 Hibernate 5 ORM ,这应该包括空间能力。因此,我删除了 pom.xml 中对 org.hibernatespatial 的引用并升级 3.6.10.Final,这样我将拥有:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.0.4.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.0.4.Final</version>
</dependency>

在我使用空间条件创建查询之前,我收到编译错误,就好像找不到某些类一样。例如,在我有类似的东西之前:

import org.hibernatespatial.criterion.SpatialRelateExpression;
import org.hibernatespatial.criterion.SpatialRestrictions;

SpatialRelateExpression geomExpression = SpatialRestrictions.within("geom", area);
criteria.add(geomExpression);

Eclipse 将提出“SpatialRelateExpression 无法解析”(与 SpatialRestrictions 相同。尽管我认为将导入更改为这些就足够了:

import org.hibernate.spatial.criterion.SpatialRelateExpression;
import org.hibernate.spatial.criterion.SpatialRestrictions;

Eclipse 会再次提示“导入 org.hibernate.spatial 无法解析”。当我打开 hibernate-core-5.0.4.Final.jarhibernate-entity-manager-5.0.4.Final.jar 库时,我找不到org.hibernate.spatial 包,但是根据Hibernate 5 documentation关于那些与空间相关的类,我希望它们在那里。

我尝试通过 Google 搜索此内容,但也许是因为 Hibernate 5 上市时间不长,我不断得到有关 Hibernate 4 的引用。

我的问题是:

  • 我是否需要更改 pom.xml 和 Maven 依赖项中的任何内容才能获得可用的空间功能?我希望它们能够完全集成到 Hibernate 主库中。
  • 为了使用 Hibernate 5,我是否应该对空间查询条件进行重大更改?我找不到好的例子。

最佳答案

您缺少 hibernate-spatial依赖性。它不会作为来自 hibernate-entitymanager 的传递依赖项被提取。

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>5.0.4.Final</version>
</dependency>

您链接到的文档是所有 Hibernate 模块组合的文档,而不仅仅是核心。

关于hibernate - 使用 Hibernate 5 ORM 的空间谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33961852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com