Hibernate Spatial - 尝试加载Oracle几何时抛出UnsupportedOperationException

时间:2013-10-01 13:41:53

标签: java oracle hibernate hibernate-spatial

我目前正与一位同事合作,将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查询,所有这些看起来都很好。 我们使用的是Hibernate 4.2.2,Hibernate Spatial 4.0-M1和JTS 1.8。该数据库是Oracle 11g。

提前致谢。

1 个答案:

答案 0 :(得分:2)

我找到了答案。问题是由于Hibernate的dialet配置。应该使用的方言是:

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

而不是这一个:

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

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