hibernate 的 sum 求和报错~!

peterhero211 2013-01-31 06:18:42
select sum(c.money) from HtBill c left join c.htUserInfoByUserId u left join c.htUserInfoByUserId.htUserDepart p left join c.htUserInfoByUserId.htCity ct where 1=1
当数据库里有记录的时候,不报错!
当数据库里没有记录的时候报错null exception!

求和的方法为
Session session = super.getHibernateTemplate().getSessionFactory().openSession();
List list = session.createQuery(hql).list();
Number num = (Number) list.get(0);
if(num.equals("0") || num.equals("") || num==null){
return 0;
}else{
return num.intValue();
}

已经防止没有结果的时候出现null了!
还是报错如下:
java.lang.NullPointerException
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
peterhero211 2013-02-01
  • 打赏
  • 举报
回复
改一下即可,isnull(sum(字段),0)
peterhero211 2013-02-01
  • 打赏
  • 举报
回复
解决了,虽然没有人来回答,还是谢谢!
Luke.Duan 2013-02-01
  • 打赏
  • 举报
回复
引用 3 楼 a597926661 的回复:
楼主 没有记录的时候报空指针错误会不是是Number num = (Number) list.get(0); 这一句代码的原因呢 最好是先判断一下是否有取到结果集 再有就是 我个人习惯还是在sql里过滤数据 Oracle数据库的用 NVL函数过滤一下空不是更好么 直接替换为0 这样就省去你在代码里的if-else了
我也觉得是这个原因。你先确定一下报错得位置。我认为,你得list根本就没有取到任何数据。
Luke.Duan 2013-02-01
  • 打赏
  • 举报
回复
引用 2 楼 peterhero211 的回复:
请教高手帮忙解决啊!
我也觉得是这个原因。你先确定一下报错得位置。我认为,你得list根本就没有取到任何数据。
a597926661 2013-02-01
  • 打赏
  • 举报
回复
楼主 没有记录的时候报空指针错误会不是是Number num = (Number) list.get(0); 这一句代码的原因呢 最好是先判断一下是否有取到结果集 再有就是 我个人习惯还是在sql里过滤数据 Oracle数据库的用 NVL函数过滤一下空不是更好么 直接替换为0 这样就省去你在代码里的if-else了
peterhero211 2013-02-01
  • 打赏
  • 举报
回复
请教高手帮忙解决啊!
peterhero211 2013-01-31
  • 打赏
  • 举报
回复
求高手帮忙解决!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧