1

我目前正在与一位同事合作,将 Java 应用程序转移到使用 Hibernate 4。作为这项工作的一部分,我们需要能够将 Ocracle 几何数据加载到 Java 应用程序中。但是,当我们尝试加载几何图形时,我们会从 Hibernate Spatial 中得到一个 UnsupportedOperationException,特别是这个错误:

Caused by: java.lang.UnsupportedOperationException
at org.hibernate.spatial.GeometrySqlTypeDescriptor.getExtractor(GeometrySqlTypeDescriptor.java:57)  

这是保存几何的变量的列定义:

@Type(type="org.hibernate.spatial.GeometryType") private Geometry ordinates;

我检查了休眠查询,一切似乎都很好。我们正在使用 Hibernate 4.2.2、Hibernate Spatial 4.0-M1 和 JTS 1.8。数据库是Oracle 11g。

提前致谢。

4

1 回答 1

2

我已经得出了答案。问题是由于 Hibernate 的 dialet 配置造成的。应该使用的方言是这样的:

config = config.setProperty(Environment.DIALECT, "org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect")

而不是这个:

config = config.setProperty(Environment.DIALECT, "org.hibernate.dialect.Oracle10gDialect")

该错误消息并不完全清楚,但这有望解决其他遇到此问题的人。

于 2013-10-08T16:36:48.703 回答