【发布时间】:2016-03-01 22:04:13
【问题描述】:
我正在将现有应用程序从 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.jar 和hibernate-entity-manager-5.0.4.Final.jar 库时,我找不到org.hibernate.spatial 包,但根据Hibernate 5 documentation 关于那些与空间相关的类,我希望它们会在那里。
我为此尝试了谷歌,但可能是因为 Hibernate 5 已经很久没有上市了,所以我不断地得到 Hibernate 4 的参考。
我的问题是:
- 是否需要更改我的 pom.xml 和 Maven 依赖项中的任何内容才能使用空间功能?我希望它们能够完全集成到 Hibernate 主库中。
- 为了使用 Hibernate 5,我是否应该对我的空间查询条件进行任何重大更改?我找不到很好的例子。
【问题讨论】:
标签: hibernate maven hibernate-5.x hibernate-spatial