hibernate中的query问题

query到底是什么东西,它里面存的是对象吗,还是别的什么?拿到query以后怎么用它得到总的数据量,就是查询结果的个数?用((Integer)query.iterate... query到底是什么东西,它里面存的是对象吗,还是别的什么?
拿到query以后怎么用它得到总的数据量,就是查询结果的个数?
用((Integer)query.iterate().next()).intValue()的时候为什么回报ClassCastException?
跪求高手详细解答,不胜感激
展开
 我来答
百度网友48d5dc9
2012-10-24 · TA获得超过448个赞
知道小有建树答主
回答量:476
采纳率:0%
帮助的人:202万
展开全部
org.hibernate.Query里面存的是对象?这个肯定了,但是不是存的你的实体类的对象(有可能是泛型),拿到数据总量,也就是个数了,就像select count(*) from ...一样的结果了。
多种方式,
一:
String hql = " from WangwangKpi wk where wk.businessDay =:businessDay and wk.wangwang.owner = :user and wk.wangwang.userGroup = :userGroup ";
Query q = session.createQuery(hql);
q.setParameter("businessDay", today);
q.setParameter("user", user);
q.setParameter("userGroup", group);
return q.list().size();返回数量
二:
String hql = "select count(id) from Chatpeer c where c.chatDay >=..."
Query query = session.createQuery(hql);
query.setParameter(0, from);
return ((Long)query.uniqueResult()).intValue();

不知你看懂了没
((Integer)query.iterate().next()).intValue()报错是必然的,
因为返回的是Long不是Integer,所以报类转换异常啊(ClassCastException)。
((Long)query.iterate().next()).intValue();这个应该是可以的,如果还不行,那就查看你的hql是怎么写的了
顺晓
2012-10-24 · TA获得超过640个赞
知道小有建树答主
回答量:981
采纳率:0%
帮助的人:634万
展开全部
List arr=null;
try {
String hql="from Stu";
Query query=this.GetSession().createQuery(hql);
arr=query.list();
}
Query封装了一个List读取。
总的数据量就用arr.size()
转换错误啊,你这个错误。看看数据库信息,里面可能有不是整型的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caoxuexin898
2012-10-24 · TA获得超过245个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:134万
展开全部
这个里面 就好像你自己写的sql语句 只不过它比较全能~~你只需要传参数就可以了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式