当前位置: 首页 > 知识库问答 >
问题:

Hibernate空间与甲骨文不工作正确?

慕冠宇
2023-03-14

我正在从事 GIS 项目。

在这方面,我想通过JSF冬眠产生一个网络地理信息系统。

我的空间数据在Oracle-Spatial 12c中,对于一些空间分析,我必须连接到Oracle DB并插入更新空间表。

我看到这个链接Hibernate Spatial

我首先尝试在Net Beans 8.02中使用Maven项目执行此操作,但工作不正确!

最后,我完成了这些步骤:

> < li>

使用带有hibernate 4.3和JSF的net Beans 8.02创建web应用程序

为Hibernate执行此步骤

https://netbeans.org/kb/docs/web/hibernate-webapp.html

从这个链接下载地理工具的jar文件并添加到我的项目中

http://sourceforge.net/projects/geotools/files/

从此链接和 ojdbc7 下载Hibernate空间 4.3 的 Jar 文件

http://www.hibernatespatial.org/documentation/01-download/01-releases/

将两个空间表添加到我的项目(LINE POINT)

在我的项目、我的线和点类以及. hbm.xml中设置这些步骤

http://www.hibernatespatial.org/documentation/03-dialects/05-oracle/

http://www.hibernatespatial.org/documentation/documentation/

当我在net Beans中构建我的项目并尝试获取查询此来自行此错误显示

org.hibernate.type.AbstractStandardBasicType.nullSafeGet处org.hibernaate.type.AabstractStandardbasicType.nnullSafeGet处的java.lang.UnsupportedOperationException(位于org.hibernae.spatial.GeometriySqlTypeDescriptor.getExtractor(GeometriySqlscriptor.java:57)(AbstractStandardBasicType.java:249),位于org.hibernate.type.AbstractStandard BasicType.hydrate(Abstract StandardBasicType.java:334),位于org.hibernate.persister.entity.Abstract EntityPersister.hydrate(AbtractEntityPersister.java:2969),位于org.hibernate。loader.loader.loader.FromResultSet(loader.java:1695),位于:位于org.hibernate.loader.loader.getRow(loader.java:1514)的org.hibernate。loader.loader。getRowFromResultSet(loader。java:725org.hibernate.hql.internal.SessionImpl.list上的org.hibernae.loader.loader.loader.listIgnoreQueryCache(loader.java:2367)位于org.hibernal.loader.loader.list(loader.java.2362)位于org.hibernate.hql.internal.classic.QueryTranslatorImpl.list(QueryTranslator Impl.java:939)位于org.hibernate.engine.query.spi.HQLQueryPlan.performList上的org.Hibernal.loader.loader.loader(SessionImpl.java:1260)位于org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)

请帮助我如何解决这个问题或者是比Hibernate空间更好的解决方案?

共有1个答案

向安福
2023-03-14

看起来它使用了错误的方言。Hibernate Spatial(HS)4.3的OracleSpatial10gDialect将负责将GeometryqlTypeDescriptor重新映射到实现SqlTypeDescriptor的SDOGeometryTypeDescriptor。getExtractor(请参见HS 4.3中的remapSqlTypeDescriptor函数)。因此,请检查Hibernate/持久性。下一个属性的xml配置

<property name="hibernate.dialect">org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect</property>
<property name="hibernate.spatial.connection_finder">org.hibernate.spatial.dialect.oracle.DefaultConnectionFinder</property>

有关connection_finder的说明,请参阅此链接。

请注意,您必须使用 HS 4.3,因为您使用的是 Hibernate 版本 4.3。对于父亲的问题,请记住,此版本的HS在Oracle 10g和11g上进行了测试,但它没有提到Oracle 12c。

 类似资料:
  • Support for the Oracle database. The following table summarizes current support levels for database release versions. 支持的Oracle版本 The following dialect/DBAPI options are available. Please refer to ind

  • 我刚接触oracle forms,遇到了一个问题。我在表单中有两个具有相同字段的多个记录块。 我查询一个块的数据,它被填充。 哪里有一种方法可以将所有行从填充的块复制到“复制”块?

  • 问题内容: 在OracleDoc中没有表达式背后的例子,所以我尝试使用Java语法,这应该在查询后得到任何数字 但是什么也没显示! 问题答案: 出于争论的考虑,REGEXP_SUBSTR也可以工作:

  • 问题内容: 我有一个表(日期,有效负载),其中包含约10年的数据,我想基于14天(2周)和90天(12周)的间隔计算移动平均值(MA),以显示有效负载的趋势 我已经写了这个查询,但是它得到了错误的值 实际上我知道是什么,但我不了解Oracle的工作原理! 我可以在Excel中进行计算,但是我需要在数据库级别执行此操作,能否请您告诉我如何执行此操作? 问题答案: 我不明白使用的目的是什么?根据文档,

  • 我需要一个特定的业务场景来设置一个实体(不是PK)上的字段,一个序列中的数字(序列必须是最小值和最大值之间的数字) 我这样定义序列: 在Java代码中,我从序列中检索数字,如下所示: 我的问题是: 如果我在一个事务中调用这个“中选择mySequence.nextval”,同时在另一个事务中调用相同的方法(并行请求),那么确定序列返回的值是不同的吗? 不可能从第一个事务中读取未提交的值吗? 因为假设

  • 前面我们在安装Go的时候看到需要设置GOPATH变量,Go从1.1版本开始必须设置这个变量,而且不能和Go的安装目录一样,这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg GOPATH设置 go 命令依赖一个重要的环境变量:$GOPATH Windows系统中环境变量的形式为%GOPATH%,本书主要使用Unix形式,Wi