Spring Boot-无法从PreparedStatement获取OracleSpatial Connection对象

时间:2018-10-05 08:59:53

标签: hibernate spring-boot oracle-spatial

我正在使用Spring Boot 2.0.1,hibernate-spatial 5.2.17和Oracle DB 12c。 HikariCP对于连接池和休眠方言为OracleSpatial10gDialect。在查询中使用休眠空间功能时,出现以下异常。

org.springframework.orm.jpa.JpaSystemException:java.lang.RuntimeException:无法从PreparedStatement获取OracleSpatial Connection对象。嵌套的异常是org.hibernate.HibernateException:java.lang.RuntimeException:无法从PreparedStatement获取OracleSpatial Connection对象。

我尝试了Couldn't get at the OracleSpatial Connection object from the PreparedStatement处的建议。但是面临同样的问题。

任何指向该解决方案的指针都会有很大帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

从休眠文档中:https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html

The ConnectionFinder interface 我解决了这个问题:

  • 实现org.geolatte.geom.codec.db.oracle.ConnectionFinder接口;

    公共类CustomConnectionFinder实现ConnectionFinder { @SneakyThrows @Override 公共连接查找(连接连接){ 返回(((HikariProxyConnection)连接).unwrap(OracleConnection.class); } }

  • 配置应用程序。yml:

    春天: jpa: 特性: 休眠: 方言:org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect 空间: connection_finder:it.dedagroup.slim.data.domain.CustomConnectionFinder