Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: SUM near line 1, column 15 [ SELECT COUNT(SUM(orderDetail.weaterCount))  FROM com.rxy.webbase.common.model.bo.SellOrderBO sellOrder, com.rxy.webbase.common.model.bo.SellOrderDetailBO orderDetail, com.rxy.webbase.common.model.bo.BasWeaterTypeBO weaterType, com.rxy.webbase.common.model.bo.BasEmpBO basEmp  WHERE sellOrder.sellOrderId = orderDetail.sellOrderId  AND orderDetail.basWeaterTypeId = weaterType.basWeaterTypeId  AND sellOrder.sendEmpId = basEmp.basEmpId  AND sellOrder.orderState = '3' AND basEmp.delFlg != '1'  AND weaterType.delFlg != '1'  AND sellOrder.delFlg != '1'  AND sellOrder.orderDate >= TO_DATE('2010-02-05 14:10:06','yyyy-mm-dd hh24:mi:ss')  AND sellOrder.orderDate <= TO_DATE('2010-02-05 14:10:06','yyyy-mm-dd hh24:mi:ss')  GROUP BY basEmp.empName,weaterType.weaterName ]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:281)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:180)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:923)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
... 147 more

解决方案 »

  1.   

     org.hibernate.hql.ast.QuerySyntaxException.convert(?sql中存在类型转换错误,检查下
      

  2.   

    COUNT(SUM(orderDetail.weaterCount)) 
    这是啥?
    记住了 聚合函数不能被嵌套
      

  3.   

    这样写SQL可以查询出结果啊!
     SELECT COUNT(SUM(orderDetail.WEATER_COUNT) )  
        FROM SELL_ORDER sellOrder, SELL_ORDER_DETAIL orderDetail , BAS_WEATER_TYPE weaterType , BAS_EMP basEmp  
        WHERE orderDetail.SELL_ORDER_ID = sellOrder.SELL_ORDER_ID  
            AND orderDetail.BAS_WEATER_TYPE_ID = weaterType.BAS_WEATER_TYPE_ID  
            AND sellOrder.SEND_EMP_ID = basEmp.BAS_EMP_ID  
            AND sellOrder.ORDER_STATE = '3'  
            AND basEmp.DEL_FLG <> '1'  
            AND weaterType.DEL_FLG <> '1'  
            AND sellOrder.DEL_FLG <> '1'  
            AND sellOrder.ORDER_DATE >= to_date('2010-02-05 15:27:08','yyyy-mm-dd hh24:mi:ss')  
            AND sellOrder.ORDER_DATE <= to_date('2010-02-05 15:27:08','yyyy-mm-dd hh24:mi:ss')  
         GROUP BY basEmp.EMP_NAME,weaterType.WEATER_NAME ;
      

  4.   

    是不是hibernate不支持聚合函数嵌套查询语法?
      

  5.   

    貌似只有Oracle支持嵌套,HQL应该是不支持
      

  6.   

    我感觉也是!上面的sql在toad for Oracle中可以执行!但是转化为HQL在执行时就报了上面那个错误!