gpt4 book ai didi

java - 使用 hibernate native 查询的错误 BigInteger 结果

转载 作者:行者123 更新时间:2023-11-29 12:26:11 25 4
gpt4 key购买 nike

我正在使用 Hibernate4 + PostgresSql。我需要从我的数据库中获取一个 ID 列表,而不需要获取整个对象。我使用 native 查询(因为它是分层的),它看起来像:

String s = hierachical_part_skipped +"select id " +
"from search_hierarchy " +
"order by id";

Query q = getEntityManager().createNativeQuery(s);
List<Long> resList = new ArrayList<>();
List<BigInteger> biglist = q.getResultList();
for (Object id : biglist) {
System.out.print(id+",");
resList.add(id.longValue());
}

好吧,我的 bigList 中有 1 次充满了错误的值!我有10,20,30,40,50,60,70,80,90,100 ... 27350代替1, 2... 2735(一个零被添加到每个值)。不通过 Hibernate 手动执行的 native 查询返回正确的值。

我已经尝试检索结果作为对象列表,但结果是一样的

最佳答案

我已经找到了足够的解决方法

s.append("select id \\:\\:numeric " + //that's a hack
"from search_department " +
"order by id");
Query q = getEntityManager().createNativeQuery(s);
List<Long> resList = new ArrayList<>();
List<BigDecimal> biglist = q.getResultList();
for (BigDecimal id : biglist) {
System.out.print(id + ",");
resList.add(id.longValue());
}

不过,我想知道为什么 BigInteger 工作不正常

关于java - 使用 hibernate native 查询的错误 BigInteger 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35726380/

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