Java JPA存储库方法列表<;整数>;以列表形式返回结果<;BigDecimal>;为什么?

Java JPA存储库方法列表<;整数>;以列表形式返回结果<;BigDecimal>;为什么?,java,hibernate,spring-data-jpa,Java,Hibernate,Spring Data Jpa,我在JPA存储库kartDao中有下一个方法: @Query(value = "select t.k_lsk_id from SCOTT.KART t ", nativeQuery = true) List<Integer> findAllKlskId(); @Query(value=“从SCOTT.KART中选择t.k_lsk_id”,nativeQuery=true) 列出findAllKlskId(); 当我尝试使用以下方法获取它时: List<Integer>

我在JPA存储库kartDao中有下一个方法:

@Query(value = "select t.k_lsk_id from SCOTT.KART t ", nativeQuery = true)
List<Integer> findAllKlskId();
@Query(value=“从SCOTT.KART中选择t.k_lsk_id”,nativeQuery=true)
列出findAllKlskId();
当我尝试使用以下方法获取它时:

List<Integer> someLst = new ArrayList<Integer>();
someLst.add(12); // my Integer value
someLst.addAll(kartDao.findAllKlskId());
List someLst=new ArrayList();
加上(12);//我的整数值
someLst.addAll(kartDao.findAllKlskId());
我在调试器中看到someList同时包含Integer和BigDecimal类型:

但它是如何发生的呢?我的someList是列表类型!! 我不明白,帮帮我)

upd1 在Oracle数据库中,k_lsk_id类型为编号:


数字从DB端返回十进制值

你应该把数字改成整数,罪魁祸首是我。 它尝试转换查询执行的结果。 如果找不到转换器,它只返回原始的未转换结果

所使用的转换器本质上是一个不支持从
BigDecimal
进行任何转换的转换器

更新:我对此做了更多的研究,问题似乎不是转换服务无法转换
BigDecimal
,而是请求的目标类型只是
List


我将研究它。

在Java中键入擦除。编译完Java文件后,不管您将List声明为List还是List,它都是List。您应该检查您的k_lsk_id列定义,并确保k_lsk_id可以用整数表示。请参阅我的upd1Oracle数字(p,s):其中p是精度,s是刻度。例如,数字(7,2)是小数点前有5位,小数点后有2位的数字。所以,也许你可以把K_LSK_ID的类型改为整数。看起来问题有点复杂。请参阅更新。