gpt4 book ai didi

java - 在这种情况下,对于带有 "Select count(columnName) ..."的 native 查询,返回类型为 java.math.BigDecimal

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:28 25 4
gpt4 key购买 nike

我正在使用这样的 native 查询:

public Long count() {  
String sql = "SELECT COUNT(t.task_id_t100) from T100_TASK t ";
Query query = entityManager.createNativeQuery(sql);
return (Long) query.getSingleResult();
}

这一直有效。今天我得到了一个 ClassCastException,因为 query.getSingleResult() 返回了一个 BigDecimal。我不记得有什么改变。

这个 answer 中的提示告诉 请注意,在某些情况下,结果类型可能取决于数据库,即它可能类似于 BigDecimal

在哪些情况下?

最佳答案

你可以简单地询问对象它是哪个类...

public Long count() {  
String sql = "SELECT COUNT(t.task_id_t100) from T100_TASK t ";
Query query = entityManager.createNativeQuery(sql);
Object o = query.getSingleResult();
//for BigDecimal
if (o.getClass().equals(BigDecimal.class) ){
BigDecimal big = (BigDecimal) o;
return handleBigDecimal(big); //TODO
}
//other types might follow
return (Long) o;
}

但请记住 - bigDecimal 可以比 long 大得多......(可以......不能保证)

关于java - 在这种情况下,对于带有 "Select count(columnName) ..."的 native 查询,返回类型为 java.math.BigDecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25426456/

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