org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: ( near line 1, column 20 [select tt.cid from (select cco.consignId as cid from com.tms.data.StArapItem sai,com.tms.data.CoConsignOrder cco  where  sai.consignId=cco.consignId and sai.orderStatus='30' and sai.arapType='0'  and cco.receiveOrderTime>=TO_DATE('2008-05-01 00:00:00','YYYY-MM-DD HH24:MI:SS') and cco.receiveOrderTime<=TO_DATE('2008-06-01 00:00:00','YYYY-MM-DD HH24:MI:SS') group by  cco.consignId,cco.customerName,sai.customerName )tt]; nested exception is org.hibernate.hql.ast.QuerySyntaxError: unexpected token: ( near line 1, column 20 [select tt.cid from (select cco.consignId as cid from com.tms.data.StArapItem sai,com.tms.data.CoConsignOrder cco  where  sai.consignId=cco.consignId and sai.orderStatus='30' and sai.arapType='0'  and cco.receiveOrderTime>=TO_DATE('2008-05-01 00:00:00','YYYY-MM-DD HH24:MI:SS') and cco.receiveOrderTime<=TO_DATE('2008-06-01 00:00:00','YYYY-MM-DD HH24:MI:SS') group by  cco.consignId,cco.customerName,sai.customerName )tt]
org.hibernate.hql.ast.QuerySyntaxError: unexpected token: ( near line 1, column 20 [select tt.cid from (select cco.consignId as cid from com.tms.data.StArapItem sai,com.tms.data.CoConsignOrder cco  where  sai.consignId=cco.consignId and sai.orderStatus='30' and sai.arapType='0'  and cco.receiveOrderTime>=TO_DATE('2008-05-01 00:00:00','YYYY-MM-DD HH24:MI:SS') and cco.receiveOrderTime<=TO_DATE('2008-06-01 00:00:00','YYYY-MM-DD HH24:MI:SS') group by  cco.consignId,cco.customerName,sai.customerName )tt]
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:63)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:215)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:127)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:83)
at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:427)
at org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:884)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:834)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:603)
at com.tms.dao.ITmsManager$1.doInHibernate(ITmsManager.java:78)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:332)
at com.tms.dao.ITmsManager.getAccountRemindersItem(ITmsManager.java:40)
at com.tms.struts.action.AccountRemindersItemAction.execute(AccountRemindersItemAction.java:30)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.common.LoginFilter.doFilter(LoginFilter.java:26)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.common.FilterChar.doFilter(FilterChar.java:20)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: line 1:20: unexpected token: (
at org.hibernate.hql.antlr.HqlBaseParser.fromRange(HqlBaseParser.java:1200)
at org.hibernate.hql.antlr.HqlBaseParser.fromClause(HqlBaseParser.java:1041)
at org.hibernate.hql.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:759)
at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:611)
at org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:263)
at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:150)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:209)
... 39 morehibernate好象不支持这种语法查询.

解决方案 »

  1.   

    把报错的sql语句直接在数据库执行能通过吗,hibernate是支持的
      

  2.   

    SQL语句: 
    select count(tt.cid) from ( 
           select count(cco.consign_Id)  from St_Arap_Item sai,Co_Consign_Order cco   
           where  sai.consign_Id=cco.consign_Id  
           and cco.receive_Order_Time>=TO_DATE('2008-05-01 00:00:00','YYYY-MM-DD HH24:MI:SS')  
           and cco.receive_Order_Time <=TO_DATE('2008-06-01 00:00:00','YYYY-MM-DD HH24:MI:SS')  
           group by  cco.consign_Id,cco.customer_Name,sai.customer_Name)tt 
    这个语句直接在PL/SQL执行没出错.
    改成Hibernate就出错.
      

  3.   

    hql里面,子查询语句智能出现在where子句里面。
      

  4.   

    怎么会有这样的问题,是sql语句写错了吗