通过固定hql字符串获取总记录数急

lgh2626 2008-06-12 01:18:55
Query queryObject = session.createQuery(hql);
int count = queryObject.list().size();
这句怎么改呀.如果数据多了.上面那句不行.但是hql是参数传过来的又是固定的.如何得到总记录数.
...全文
391 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
TRMeister 2008-06-13
  • 打赏
  • 举报
回复
楼主的做法是把会把所有的记录都读一遍。自然会很慢。建议使用HQL count(*).
seeSkyblue 2008-06-13
  • 打赏
  • 举报
回复
我没试过不知道正确性,从楼上的两种方法来看,如果都是正确可行的话,明显用count(*)的效率更高一点。
LZ可以自己试验一下。
showgood119 2008-06-12
  • 打赏
  • 举报
回复
LS的大大们,真厉害
sprrav 2008-06-12
  • 打赏
  • 举报
回复
分析hql,去掉order by.进行count(*)是正解
Landor2004 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yami251139 的回复:]
直接count(pk)
不要用size
[/Quote]

count(*)与count(pk)是等同的
Landor2004 2008-06-12
  • 打赏
  • 举报
回复
Query queryObject = session.createQuery("select count(*) from XXX xxx");
Integer count = (Integer)queryObject.uniqueResult();
fulianglove 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yami251139 的回复:]
直接count(pk)
不要用size
[/Quote]
同意
waysunman 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 laoxing521 的回复:]
对HQL进行简单处理
去掉from前面的和order by语句
整成select count(*) from XX where XX的形式
[/Quote]
wyhjia 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 laoxing521 的回复:]
对HQL进行简单处理
去掉from前面的和order by语句
整成select count(*) from XX where XX的形式
[/Quote]

正解
yami251139 2008-06-12
  • 打赏
  • 举报
回复
直接count(pk)
不要用size
laoxing521 2008-06-12
  • 打赏
  • 举报
回复
对HQL进行简单处理
去掉from前面的和order by语句
整成select count(*) from XX where XX的形式

67,513

社区成员

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

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