我正在将现有的应用程序从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的引用。
我的问题是:
答案 0 :(得分:2)
您缺少hibernate-spatial
依赖项。它不是来自hibernate-entitymanager
的传递依赖。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>5.0.4.Final</version>
</dependency>
您链接到的文档是所有Hibernate模块的文档,而不仅仅是核心。