powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jdbcTemplate не может конвертировать BigDecimal в Integer
3 сообщений из 3, страница 1 из 1
jdbcTemplate не может конвертировать BigDecimal в Integer
    #39484772
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Java 1.8, Spring Boot.
Есть примерно такой код, вызывающий оракловую функцию:
Код: java
1.
2.
3.
4.
5.
SimpleJdbcCall f = new SimpleJdbcCall(jdbcTemplate)
                .withSchemaName("MY_SCHEMA")
                .withCatalogName("MY_PACKAGE")
                .withFunctionName("MY_FUNCTION");
SqlParameterSource in = new MapSqlParameterSource().addValue("p_in_param", intVar);


Сама функция:
Код: sql
1.
function MY_FUNCTION (p_in_param in number) return number;


А дальше мне надо получить результат. Вот такой вариант не работает:
Код: java
1.
int pNum = f.executeFunction(Integer.class, in).intValue();

валится с ошибкой
Код: java
1.
java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer



Вот такой вариант даже не компилируется (ту же ошибку выдает):
Код: java
1.
int pNum = ((java.math.BigDecimal)f.executeFunction(Integer.class, in)).intValue();



Зато такой вариант работает, хотя в чем его принципиальное отличие от предыдущих, я не понимаю:
Код: java
1.
2.
Object obj = f.executeFunction(Integer.class, in);
pNum = ((java.math.BigDecimal)obj).intValue();
...
Рейтинг: 0 / 0
jdbcTemplate не может конвертировать BigDecimal в Integer
    #39484775
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если вместо Integer.class писать BigDecimal.class?
...
Рейтинг: 0 / 0
jdbcTemplate не может конвертировать BigDecimal в Integer
    #39484785
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, так работает.
Кажется, более-менee понял.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jdbcTemplate не может конвертировать BigDecimal в Integer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]