尝试从JdbcTemplate获取OracleConnection的ClassCastException

时间:2015-09-21 14:33:13

标签: spring oracle spring-data jdbctemplate ojdbc

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

Connection conn = auditJdbcTemplate.getDataSource().getConnection();
ArrayDescriptor keyArryDesc = ArrayDescriptor.createDescriptor("VC_ARR", conn);

我收到的错误是:

java.lang.ClassCastException: com.sun.proxy.$Proxy183 cannot be cast to oracle.jdbc.OracleConnection
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:105

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

1 个答案:

答案 0 :(得分:2)

也许有人觉得它很有用:

Connection conn =  jdbcTemplate.getDataSource().getConnection().unwrap(OracleConnection.class);