Loading...

          java .net

          相當相當隱蔽的錯誤 org.hibernate.hql.ast.QuerySyntaxException: unexpected token


          今天周末,被頭兒過來改bug
          其中一個在hql查詢的時候報org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ApplyInfo near line 1, column 23這樣的錯誤,貌似看起來hibernate不認識ApplyInfo這個映射持久類,但是這個類非常確定的是已經映射了,而且在別處用的非常正常。郁悶,找啊找
          在網上找org.hibernate.hql.ast.QuerySyntaxException: unexpected token的錯誤有
          1、持久類寫錯了,要不就是寫成了數據庫表名
          2、hibernate3.0不支持select中嵌套查詢,據說from中也不行,只支持where中嵌套查詢,好像3.1支持了select中嵌套
          3、sql語句中字段是用了保留關鍵字

          然后就是我發現的這個隱蔽錯誤了
          發現的from后的空格是一個全角的空格,半角 空格,全角 空格。距離比一樣啊,原來就看出from后面的空格大了,還以為是兩個空格呢。

          隱蔽,太隱蔽了。

          org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ApplyInfo near line 1, column 23 [SELECT contCount FROM ApplyInfo where applyId = (select applyId from com.capinfo.hibernate.person.pojo.AContinueInfo where id=25)]
              at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
              at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:244)
              at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:155)
              at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
              at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
              at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
              at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
              at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:134)
              at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:113)
              at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1602)
              at com.capinfo.zgbm.print.dao.PrintQueryDAO.getContinueCount(PrintQueryDAO.java:273)
              at com.capinfo.zgbm.print.action.PrintContinueCountAction.execute(PrintContinueCountAction.java:95)
              at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
              at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
              at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
              at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
              at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
              at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
              at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
              at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
              at com.capinfo.util.LoginFilter.doFilter(LoginFilter.java:61)
              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
              at com.capinfo.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:67)
              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3212)
              at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
              at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
              at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
              at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
              at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
              at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
              at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
          Caused by: line 1:23: unexpected token: ApplyInfo
              at org.hibernate.hql.antlr.HqlBaseParser.identPrimary(HqlBaseParser.java:4021)
              at org.hibernate.hql.antlr.HqlBaseParser.primaryExpression(HqlBaseParser.java:861)
              at org.hibernate.hql.antlr.HqlBaseParser.atom(HqlBaseParser.java:3422)
              at org.hibernate.hql.antlr.HqlBaseParser.unaryExpression(HqlBaseParser.java:3200)
              at org.hibernate.hql.antlr.HqlBaseParser.multiplyExpression(HqlBaseParser.java:3082)
              at org.hibernate.hql.antlr.HqlBaseParser.additiveExpression(HqlBaseParser.java:2802)
              at org.hibernate.hql.antlr.HqlBaseParser.concatenation(HqlBaseParser.java:570)
              at org.hibernate.hql.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2586)
              at org.hibernate.hql.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2449)
              at org.hibernate.hql.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2413)
              at org.hibernate.hql.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:2331)
              at org.hibernate.hql.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:2296)
              at org.hibernate.hql.antlr.HqlBaseParser.expression(HqlBaseParser.java:2082)
              at org.hibernate.hql.antlr.HqlBaseParser.aliasedExpression(HqlBaseParser.java:2249)
              at org.hibernate.hql.antlr.HqlBaseParser.selectedPropertiesList(HqlBaseParser.java:1455)
              at org.hibernate.hql.antlr.HqlBaseParser.selectClause(HqlBaseParser.java:1365)
              at org.hibernate.hql.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1106)
              at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:702)
              at org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:296)
              at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:159)
              at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:238)
              ... 33 more

          posted on 2008-08-26 22:06 閱讀(4461) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          公告

          希望有一天

          我能用鼠標雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導航

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安阳市| 巴里| 恭城| 西华县| 大冶市| 罗源县| 全州县| 凤翔县| 临朐县| 仙游县| 绥中县| 肇东市| 托克托县| 鹤峰县| 南安市| 东至县| 连城县| 河北区| 平乐县| 灯塔市| 丽江市| 盖州市| 禄劝| 娄底市| 大连市| 镇远县| 明溪县| 天峨县| 巴楚县| 盐源县| 教育| 耒阳市| 紫阳县| 北川| 台安县| 淮安市| 邵阳县| 湖北省| 玉山县| 惠安县| 福鼎市|