让初学者郁闷之极都问题!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 后面不小心输入一个中文空格,或者引号内都语句与变量之间没用空格等都会造成这样都错误!

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值