JPA Repository method List <Integer>возвращает результат в виде List <BigDecimal>почему? - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть следующий метод в репозитории JPA kartDao:

@Query(value = "select t.k_lsk_id from SCOTT.KART t ", nativeQuery = true)
List<Integer> findAllKlskId();

Когда я пытаюсь получить его, используя:

List<Integer> someLst = new ArrayList<Integer>();
someLst.add(12); // my Integer value
someLst.addAll(kartDao.findAllKlskId());

В отладчике я вижу, что someList содержит типы Integer и BigDecimal:

enter image description here

Но как это происходит?Мой someList является типом списка !!Не можете понять, помогите мне))

upd1 В базе данных Oracle тип k_lsk_id имеет номер:

enter image description here

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Виновником является эта строка кода Я думаю.Он пытается преобразовать результат выполнения запроса.Если ему не удается найти конвертер, он просто возвращает исходный неконвертированный результат.

Используемый конвертер - это, по сути, DefaultConversionService, который не поддерживает преобразования из BigDecimal. * 1009.*

ОБНОВЛЕНИЕ: Я немного больше разбирался в этом, и кажется, что проблема не столько в том, что служба преобразования не может преобразовать BigDecimal, но в том, что запрошенный целевой тип просто List.

Я открыл проблему и изучу ее.

0 голосов
/ 18 февраля 2019

Число возвращает десятичное значение со стороны БД.

вам нужно изменить число на Integer

...