首先你把该语句放在SQL查询器中试试能不能运行

解决方案 »

  1.   

    "order by count(ml.subject) desc");
      

  2.   

    还是不对  原句转换成sql语句在pl/sql里是能查询出结果的
      

  3.   

    createQuery 执行的是hql
    既然是sql, 那么就用
    createSQLQuery()
      

  4.   

    请问createSQLQuery()怎么用?  createSQLQuery(String,String,Class) 后面一个String和Class代表什么? 
    还有断点设在哪能看到hql转换成sql后的字符串?
      

  5.   

    错误信息没有发全啊,
    expected 前面还有信息的。count(ml.subject) => count(ml) 
    order by count1 desc => order by count(ml) desc试一下,有问题再跟贴。
      

  6.   

    另外那个别名 count1也去掉吧。
      

  7.   

    照你的改会有这个错误13:21:25,375  WARN JDBCExceptionReporter:57 - SQL Error: 979, SQLState: 42000
    13:21:25,375 ERROR JDBCExceptionReporter:58 - ORA-00979: 不是 GROUP BY 表达式13:21:25,375  WARN JDBCExceptionReporter:57 - SQL Error: 979, SQLState: 42000
    13:21:25,375 ERROR JDBCExceptionReporter:58 - ORA-00979: 不是 GROUP BY 表达式net.sf.hibernate.exception.GenericJDBCException: Could not execute query
      

  8.   

    GROUP BY 不能和WHERE连用,当用GROUP BY 时,条件,用HAVEING
      

  9.   

    但这个sql语句在sql/plus里是能执行通过的
      

  10.   

    请问createSQLQuery()怎么用?  createSQLQuery(String,String,Class) 后面一个String和Class代表什么? 
    -----------------
    后面两个代表表和对象的映射,如
    createSQLQuery("select {c.*} from CUSTOMERS c", "c", Customer.class)
      

  11.   

    hibernate难道select的一定要是个对应的对象?  能不能像jdbc那样取个结果集出来?
      

  12.   

    用newxy(新坐标)可以是这样的:
      String sql="select ml.subject,su.subjectName,count(ml.subject) count1 " +
                        "from MediaLog ml, Subject  su " +
                        "where ml.subject = su.subjectId " +
                        "group by ml.subject,su.subjectName " +
                        "order by count1 desc";
      net.newxy.dbm.BaseDAO dao=new net.newxy.dbm.BaseDAO();
      List list=dao.list(sql);  sql 语句是标准的。
      newxy网站:http://www.newxy.net
      

  13.   

    我们项目是用hibernate的 总不能为了这点把框架都改了吧...
      

  14.   

    改为下面试试:
    select ml.subject,su.subjectName,count(ml.subject) " +
                        "from MediaLog ml, Subject su " +
                        "where ml.subject = su.subjectId " +
                        "group by ml.subject,su.subjectName " +
                        "order by count(ml.subject) desc");
    另外,我觉得是不是可以把group by 后面的"su.subjectName 去掉,似乎和ml.subject重复了!
      

  15.   

    不如直接用createSQLQuery,用普通的sql查询得了。用HQL返回的好像要和model对象对应的。这个不是很清楚^_^
      

  16.   

    group by 后面的 su.subjectName 去掉就不能select su.subjectName 了
    hibernate有直接用用sql返回结果集的方法吗?
      

  17.   

    看来只好用jdbc连了....谢谢大家