我正在使用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处的建议。但是面临同样的问题。
任何指向该解决方案的指针都会有很大帮助。谢谢。
答案 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