我正在从事 GIS 项目。
我想通过 JSF + Hibernate 制作一个 Web GIS。
我的空间数据在 Oracle-Spatial 12c 中,对于一些空间分析,我必须连接到 Oracle DB 并插入更新空间表。
我看到这个链接 Hibernate-Spatial
我首先尝试使用 Net Beans 8.02 中的 Maven 项目执行此操作,但效果不正确!
最后我完成了这些步骤:
使用带有 hibernate 4.3 和 JSF 的 net Beans 8.02 创建一个 Web 应用程序
为休眠执行此步骤
从此链接下载 Geo-tools 的 jar 文件并添加到我的项目中
从此链接和ojdbc7下载hibernate-spatial 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 中构建我的项目并尝试从行查询此错误显示
java.lang.UnsupportedOperationException at org.hibernate.spatial.GeometrySqlTypeDescriptor.getExtractor(GeometrySqlTypeDescriptor.java:57) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:263) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet( AbstractStandardBasicType.java:259) 在 org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249) 在 org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:334) 在 org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1627) 中 org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1695) 中的 .hydrate(AbstractEntityPersister.java:2969)。 org.hibernate.loader 中的 Loader.getRow(Loader.java:1514)。Loader.getRowFromResultSet(Loader.java:725) at org.hibernate.loader.Loader.processResultSet(Loader.java:952) at org.hibernate.loader.Loader.doQuery(Loader.java:920) at org.hibernate.loader .Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354) 在 org.hibernate.loader.Loader.doList(Loader.java:2551) 在 org.hibernate.loader.Loader.doList(Loader.java:2537) 在 org.hibernate。 loader.Loader.listIgnoreQueryCache(Loader.java:2367) at org.hibernate.loader.Loader.list(Loader.java:2362) at org.hibernate.hql.internal.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:939)在 org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:229) 在 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1260) 在 org.hibernate.internal.QueryImpl.list(QueryImpl .java:103)725) 在 org.hibernate.loader.Loader.processResultSet(Loader.java:952) 在 org.hibernate.loader.Loader.doQuery(Loader.java:920) 在 org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java :354) 在 org.hibernate.loader.Loader.doList(Loader.java:2551) 在 org.hibernate.loader.Loader.doList(Loader.java:2537) 在 org.hibernate.loader.Loader.listIgnoreQueryCache(Loader. java:2367) 在 org.hibernate.loader.Loader.list(Loader.java:2362) 在 org.hibernate.hql.internal.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:939) 在 org.hibernate.engine.query .spi.HQLQueryPlan.performList(HQLQueryPlan.java:229) 在 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1260) 在 org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)725) 在 org.hibernate.loader.Loader.processResultSet(Loader.java:952) 在 org.hibernate.loader.Loader.doQuery(Loader.java:920) 在 org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java :354) 在 org.hibernate.loader.Loader.doList(Loader.java:2551) 在 org.hibernate.loader.Loader.doList(Loader.java:2537) 在 org.hibernate.loader.Loader.listIgnoreQueryCache(Loader. java:2367) 在 org.hibernate.loader.Loader.list(Loader.java:2362) 在 org.hibernate.hql.internal.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:939) 在 org.hibernate.engine.query .spi.HQLQueryPlan.performList(HQLQueryPlan.java:229) 在 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1260) 在 org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)loader.Loader.doQuery(Loader.java:920) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354) at org.hibernate.loader.Loader.doList(Loader.java:2551) at org.hibernate .loader.Loader.doList(Loader.java:2537) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2367) at org.hibernate.loader.Loader.list(Loader.java:2362) at org. hibernate.hql.internal.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:939) at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:229) at org.hibernate.internal.SessionImpl.list( SessionImpl.java:1260) 在 org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)loader.Loader.doQuery(Loader.java:920) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354) at org.hibernate.loader.Loader.doList(Loader.java:2551) at org.hibernate .loader.Loader.doList(Loader.java:2537) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2367) at org.hibernate.loader.Loader.list(Loader.java:2362) at org. hibernate.hql.internal.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:939) at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:229) at org.hibernate.internal.SessionImpl.list( SessionImpl.java:1260) 在 org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)doList(Loader.java:2551) at org.hibernate.loader.Loader.doList(Loader.java:2537) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2367) at org.hibernate.loader.Loader .list(Loader.java:2362) 在 org.hibernate.hql.internal.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:939) 在 org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:229 ) 在 org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) 的 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1260)doList(Loader.java:2551) at org.hibernate.loader.Loader.doList(Loader.java:2537) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2367) at org.hibernate.loader.Loader .list(Loader.java:2362) 在 org.hibernate.hql.internal.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:939) 在 org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:229 ) 在 org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) 的 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1260)HQLQueryPlan.performList(HQLQueryPlan.java:229) 在 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1260) 在 org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)HQLQueryPlan.performList(HQLQueryPlan.java:229) 在 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1260) 在 org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
请帮助我如何解决问题或者是比hibernate-spatial更好的解决方案?