讓初學者鬱悶之極都問題!org.hibernate.hql.ast.QuerySyntaxException:

 

今天給一個朋友解決來一個問題,讓許多初學者很頭疼的一個問題。這個問題對初學者來說事超級鬱悶都問題!異常如下:

org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 'class org.xsyyc.luojs.domains.Item' near line 1, column 6

[from 'class org.xsyyc.luojs.domains.Item' where id=13]

         at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)

         at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)

         at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)

         at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:258)

         at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)

         at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)

         at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)

         at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)

         at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)

         at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)

         at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)

         at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)

         at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:832)

         at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:362)

         at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:830)

         at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:822)

         at org.xsyyc.luojs.common.BaseHibernateImpl.searchObject(BaseHibernateImpl.java:56)

         at org.xsyyc.luojs.common.BaseHibernateImpl.loadObject(BaseHibernateImpl.java:50)

         at org.xsyyc.luojs.service.serviceImpl.ItemServiceImpl.findItem(ItemServiceImpl.java:29)

         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

         at java.lang.reflect.Method.invoke(Unknown Source)

         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)

         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:203)

         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)

         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)

         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)

         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)

         at $Proxy8.findItem(Unknown Source)

         at org.xsyyc.luojs.struts.action.ItemAction.to_update(ItemAction.java:65)

         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

         at java.lang.reflect.Method.invoke(Unknown Source)

         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)

         at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)

         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)

         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)

         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)

         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)

         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

         at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)

         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)

         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)

         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

         at java.lang.Thread.run(Unknown Source)

 

 

這個問題是因粗心所造成的,開始以爲是hibernate加載錯誤或者事數據庫表字段中有關鍵字等造成都,可仔細檢查後,還是沒有發現問題都所在,最後把問題鎖定到了hsql語句上:

String hql = "from '"+o+"' where id="+id;

平時都習以爲常了,卻粗心大意在sql語句中多加入來一個單引號,暈!暈!

去掉單引號後成下面都sql語句就對來!!

String hql = "from "+o+" where id="+id;

像這樣的異常,一般都是sql語句引起都,這樣都異常問題還可能出現在 form 後面不小心輸入一箇中文空格,或者引號內都語句與變量之間沒用空格等都會造成這樣都錯誤!

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章