我目前正与一位同事合作,将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。
提前致谢。
答案 0 :(得分:2)
我找到了答案。问题是由于Hibernate的dialet配置。应该使用的方言是:
config = config.setProperty(Environment.DIALECT, "org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect")
而不是这一个:
config = config.setProperty(Environment.DIALECT, "org.hibernate.dialect.Oracle10gDialect")
错误信息并不完全清楚,但这有望解决其他有此问题的人。