【问题标题】:Hibernate Spatial - Throws UnsupportedOperationException trying to load Oracle geometryHibernate Spatial - 尝试加载 Oracle 几何时抛出 UnsupportedOperationException
【发布时间】:2013-10-01 13:41:52
【问题描述】:

我目前正在与一位同事合作,将 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。

提前致谢。

【问题讨论】:

    标签: java oracle hibernate hibernate-spatial


    【解决方案1】:

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

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

    而不是这个:

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

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

    【讨论】:

    • 如果你使用 MySQL,你想要的方言是"org.hibernate.spatial.dialect.mysql.MySQLSpatialDialect"
    猜你喜欢
    • 2014-10-26
    • 2013-02-26
    • 1970-01-01
    • 2022-01-22
    • 2014-01-30
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多