有很多不同的hql啊,我想通知道这些hql结果的总记录数啊。
在hibernate里不知道有什么好的办法没有啊?
在sql里面就可以直接写一个方法
public String countSql(String sql)
{
return "select count(*) from (" + sql +")";
}
就可以了啊。但是hql该怎么做呢?感谢大家了啊!
 

解决方案 »

  1.   

    select count(*) form User
      

  2.   


    select count(1) from User
      

  3.   

    汗是有很多完整的hql啊。比如我传一个hql是select xxx form xxTabObj where xx = xx and .....
    我要知道这条hql返回的总记录数是什么啊?有很多这样的不同的hql啊,我想要传一个hql的String和hql的参数,就可以返回这个hql,执行后的记录总数是多少?
      

  4.   

    汗是有很多完整的hql啊。比如我传一个hql是select xxx form xxTabObj where xx = xx and .....
    我要知道这条hql返回的总记录数是什么啊?有很多这样的不同的hql啊,我想要传一个hql的String和hql的参数,就可以返回这个hql,执行后的记录总数是多少?
      

  5.   

    汗是有很多完整的hql啊。比如我传一个hql是select xxx form xxTabObj where xx = xx and .....
    我要知道这条hql返回的总记录数是什么啊?有很多这样的不同的hql啊,我想要传一个hql的String和hql的参数,就可以返回这个hql,执行后的记录总数是多少?
      

  6.   


    在sql里面就可以直接写一个方法 
    那就用createSQLQuery啊
    给你一个句子  自己对着写入sql语句就可以了return hibernateSession.createSQLQuery("select * from EmolumentLeafletInfo emo where emo.payment_Id="+id).addEntity(EmolumentLeafletInfo.class).list();
      

  7.   

    这样不行啊!我不知道什么会传入什么hql。都是系统传进来的参数啊。都是动态的啊。没办法这么写。
    我现在想到唯一的办法就是用正则,将hql的select ...替换为 select count(*) ....的hql。
    但是我觉得这个办法不好。所以问问还有没有其他办法啊。而且我的hibernate版本比较低
    也用不了createSQLQuery这个啊。
    同时你这里直接.list()得到一个list如果数据量很大几十万。内存不会崩溃吗?
      

  8.   

    这样不行啊!我不知道什么会传入什么hql。都是系统传进来的参数啊。都是动态的啊。没办法这么写。
    我现在想到唯一的办法就是用正则,将hql的select ...替换为 select count(*) ....的hql。
    但是我觉得这个办法不好。所以问问还有没有其他办法啊。而且我的hibernate版本比较低
    也用不了createSQLQuery这个啊。
    同时你这里直接.list()得到一个list如果数据量很大几十万,那你这个list在内存中。内存不会崩溃吗?
      

  9.   

    这样不行啊!我不知道什么会传入什么hql。都是系统传进来的参数啊。都是动态的啊。没办法这么写。
    我现在想到唯一的办法就是用正则,将hql的select ...替换为 select count(*) ....的hql。
    但是我觉得这个办法不好。所以问问还有没有其他办法啊。而且我的hibernate版本比较低
    也用不了createSQLQuery这个啊。
    同时你这里直接.list()得到一个list如果数据量很大几十万,那你这个list在内存中。内存不会崩溃吗?
      

  10.   

    把他们放到map里  就行了!