请教:
HQL语句中要统计某一个对象的数量select count(*) from (from User) c在子查询中语句是变的,本例不用createSQLQuery。请问上面的HQL错在哪里呢?HQL的子查询怎么做呢?

解决方案 »

  1.   

    不知道HQL是否支持子查询,但很明显(from User)不是一个关系型表格。子查询应该差不多是这个样子:select count(*) from (select a, b, c from User where xxx=xx) AS c
      

  2.   

    你直接写ID不得了,反正ID唯一  count(id)
      

  3.   

    你这句话的意思不就是select count(*) from User c吗?你为什么要加个from User呢?hibernate支持子查询和连接查询。但用起来较复杂。。这种情况最好是用sql。更方便。用Spring的jdbdTemplate执行sql。很方便的~建议使用
      

  4.   

    select count(c) from User c
    hql中好像不能用*吧
      

  5.   

    * 一般不要用 统计的时候用主键id 就行了
    HQL和标准SQL差别较大 尤其是联合查询 一般大家都放弃了 用SQL将返回结果重新封装成VO
      

  6.   

    对象的数量不就是对应数据库表中的总记录数嘛!
    select count(*) from User
    select count(user.id) from User user