Hibernate 贼简单的问题。

zhouixi 2016-12-27 09:21:16




//DAO层我的订单的个数统计
public Integer findByCountUid(Integer uid) {
String hql="select count(*) from Order o where o.user.uid=? ";
List<Long> list= this.getHibernateTemplate().find(hql,uid);

return list.get(0).intValue();
}



这里的List<Long> 为何不用Integer接收。
...全文
215 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouixi 2016-12-28
  • 打赏
  • 举报
回复
引用 6 楼 yunqing_71 的回复:
count(*)了解一下这个函数
这个函数怎么了。
zhouixi 2016-12-28
  • 打赏
  • 举报
回复
引用 4 楼 m2200 的回复:
因为select count(*)在hibernate里默认是返回Long类型的,所以接收也用Long类型,不需要转。
ava.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer cn.xx.shop.order.dao.OrderDao.findByCountUid(OrderDao.java:27) cn.xx.shop.order.service.OrderService.findByPageUid(OrderService.java:41) 6了。我的版主。确实返回的Long默认。我去掉了上面的泛型。debug看到的。确实是。
zhouixi 2016-12-28
  • 打赏
  • 举报
回复
引用 3 楼 Yan_yuhan 的回复:
我觉得函数的返回值应该是Long类型,因为用户可能下了很多订单。奇怪的是你的这个为什么返回list.get(0)是何意?有返回Integer?
结果肯定存在0下标阿。
魔都 2016-12-28
  • 打赏
  • 举报
回复
楼上已经回答了,我想说代码层面,单表查询就不要加别名了吧。
云晴 2016-12-28
  • 打赏
  • 举报
回复
count(*)了解一下这个函数
爱睡觉的阿狸 2016-12-28
  • 打赏
  • 举报
回复
因为select count(*)在hibernate里默认是返回Long类型的,所以接收也用Long类型,不需要转。
浪迹天涯-Jason 2016-12-27
  • 打赏
  • 举报
回复
我觉得函数的返回值应该是Long类型,因为用户可能下了很多订单。奇怪的是你的这个为什么返回list.get(0)是何意?有返回Integer?
青元子 2016-12-27
  • 打赏
  • 举报
回复
可以的。上面这样写。我觉得多此一举。Count函数是返回检索行的数目。而且方法最终也是转成integer

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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