ClassCastException 试图从 JdbcTemplate 获取 OracleConnection

Ci-*_*son 0 oracle spring jdbctemplate spring-data ojdbc

我正在创建一个ArrayDescriptor以便将 CLOB 数据传递给 Oracle 函数。我有一个类,我在其中注入了 ( @Inject) jdbcTemplate...这是一个调用 Oracle 的实现类。我正在创建ArrayDescriptor类似:

Connection conn = auditJdbcTemplate.getDataSource().getConnection();
ArrayDescriptor keyArryDesc = ArrayDescriptor.createDescriptor("VC_ARR", conn);
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

java.lang.ClassCastException: com.sun.proxy.$Proxy183 cannot be cast to oracle.jdbc.OracleConnection
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:105
Run Code Online (Sandbox Code Playgroud)

正如我所说,我在这个类中直接调用了该auditJdbcTemplate.update工作,所以我不确定为什么它不能从模板返回有效的连接对象。我在 StackOverflow 中看到了几个获得底层连接的答案,但我无法让它工作。

小智 5

也许有人觉得它有用:

Connection conn =  jdbcTemplate.getDataSource().getConnection().unwrap(OracleConnection.class);
Run Code Online (Sandbox Code Playgroud)