gpt4 book ai didi

java - JPA 存储库方法 List 返回结果为 List 为什么?

转载 作者:行者123 更新时间:2023-12-02 10:15:07 25 4
gpt4 key购买 nike

我在 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 类型为 Number:

enter image description here

最佳答案

罪魁祸首是this line of code我认为。它尝试转换查询执行的结果。如果找不到转换器,它只会返回原始的未转换结果。

使用的转换器本质上是 DefaultConversionService它不支持任何 BigDecimal 的转换。

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

opened an issue并将调查此事。

关于java - JPA 存储库方法 List<Integer> 返回结果为 List<BigDecimal> 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54740190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com