Hibernate动态查询返回count的方法

就是用户选择搜索结果的分页的实现,用户可以选择搜索范围,比如性别、名称、地址之类的,内容是用Criteria做的动态查询得到的,最多返回十个结果,但要返回int类型的全部结果的数量,就是count,不知道条件查询有没有返回int类型的count的方法(我没找到),用HQL组合的话还太麻烦了,HQL有返回int类型的方法吗?JDBC就直接queryforint了,Hibernate有没有同样效果的办法啊。
太简单的话表笑啊,刚学Hibernate一个多月
[b]问题补充:[/b]
查询条件是用Criteria拼成的,所以想用Criteria返回int类型的count值,刚才不知道方法,现在知道了,只要用criteria.setProjection(Projections.rowCount()).uniqueResult()就行了,用的getHibernateTemplate().execute(new HibernateCallback(),原来HibernateCallback中要返回Criteria,这个不知道,所以之前用setProjection的时候不对,现在已经实现了,谢谢

这个问题好解决,你在拼好sql的条件之后,你先用count函数去计算一下有多少条数据,然后再去执行分页数据的提取

hibernate里面可以设置查询符合条件的第几条到第几条记录

setFirstResult(3);
setMaxResults(6);
拼好sql之后,你通过这样设置一下就能查出第三条记录到第六条记录的数据

[code="xml"]
<![CDATA[
select count(user.Id) from User user
]]>

[/code]
[code="java"]
Query query=session.getNamedQuery("getUserCnt");
Object cnt = query1.uniqueResult();
if(cnt != null){
totalCount = Integer.parseInt(cnt.toString());
}
[/code]
我看到很多人的代码是转成long型,有的是Decimal,主要是hibernater包的版本不一样,我觉得直接从object转成int最好