Я получил ошибку:
com.zaxxer.hikari.pool.HikariProxyConnection cannot be cast to oracle.jdbc.OracleConnection
Мой код:
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate).
withCatalogName(packageName).
withProcedureName(procedureName);
Map<String, Object> sqlParams = new LinkedHashMap<>();
for(RMSEntityParam entityParam: entity.getParams()) {
jdbcCall.addDeclaredParameter(new SqlParameter(entityParam.getName(), OracleTypes.ARRAY, entityParam.getType().name()));
sqlParams.put(entityParam.getName(), new SqlArrayValue<>(new Object[]{entityParam.getValue()}));
}
jdbcCall.execute(sqlParams);
Я знаю, что можно преобразовать Хикари-коннекшен к оракловому, как рекомендуют здесь: https://stackoverflow.com/questions/40087536/hikaricp-pass-oracle-custom-type
но конструктор SimpleJdbcCall может принимать на вход только JdbcTemplate или DataSource.
Hikari Version: 2.8.0 SpringBoot: 2.0.0
Как я могу решить проблему с Хикари?
P.S.: Переходить на CallableStatement не планирую. Проблема возникла при переходе со Спринг Бут 1.5.9 на версию 2.0.0. Раньше всё отрабатывало корректно.
P.S.S.: Вероятнее всего, проблема возникает из-за передачи кастомного типа ораклового массива. Но в предыдущей версии спринга ошибки не было. Откатываться не планирую.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости