表之间没有配置映射关系,写了一条左连接的sql语句,在plsql中能执行,
  select a.regino as regino,f.yhmc as yhmc,a.regtime as regtime ,b.brist as brist,d.invpt as invpt ,d.pttype as pttype,d.regno as regno,d.tel as tel,d.marname as marname,d.addr as addr,d.ubindtype as ubindtype,d.enttype as enttype,
    g.invobtype as invobtype,g.yiedistrict as yiedistrict,g.merimpsign as merimpsign,g.yieldly as yieldly,g.venspdistrict as venspdistrict,g.vensp as vensp,g.tmname as tmname,g.brandname as brandname,g.typespf as typespf,g.quan as quan,g.meaunit as meaunit
      from 
      Tscl_Djxx a,Fk_Sakt g ,
      Tscl_Nrxx b ,Fk_Sazt d,Tscl_Tgfxx e, Dwgl c ,Yhgl f
       where c.dwbm =a.regdep  and f.yhbh=a.accregper and
          a.regino=b.regino and b.regino=d.regino and d.regino=e.regino and b.infotype=1 and  a.dealno=g.dealno(+)
但是用createSqlQuery()方法无法在项目中执行。
错误如下:org.hibernate.exception.SQLGrammarException: could not execute query

解决方案 »

  1.   

     could not execute query
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.loader.Loader.doList(Loader.java:2216)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
    at org.hibernate.loader.Loader.list(Loader.java:2099)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
    at com.hyrt.mwpm.complain.webservice.dao.ComplainDaoImpl.getComplainInfo1(ComplainDaoImpl.java:64)
    at com.hyrt.mwpm.complain.webservice.service.ComplainServiceImpl.getShClInfo(ComplainServiceImpl.java:189)
    at com.hyrt.mwpm.complain.webservice.wsdl.IcomplainServiceSoapBindingImpl.getShClInfo(IcomplainServiceSoapBindingImpl.java:18)
    at com.hyrt.mwpm.complain.webservice.wsdl.IcomplainServiceSoapBindingSkeleton.getShClInfo(IcomplainServiceSoapBindingSkeleton.java:158)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    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.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:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.sql.SQLException: ORA-00903: 表名无效
      

  2.   

    String queryString = " select a.regino as regino,f.yhmc as yhmc,a.regtime as regtime ,b.brist as brist,d.invpt as invpt ,d.pttype as pttype,d.regno as regno,d.tel as tel,d.marname as marname,d.addr as addr,d.ubindtype as ubindtype,d.enttype as enttype,
        g.invobtype as invobtype,g.yiedistrict as yiedistrict,g.merimpsign as merimpsign,g.yieldly as yieldly,g.venspdistrict as venspdistrict,g.vensp as vensp,g.tmname as tmname,g.brandname as brandname,g.typespf as typespf,g.quan as quan,g.meaunit as meaunit
              from 
              Tscl_Djxx a,Fk_Sakt g ,
              Tscl_Nrxx b ,Fk_Sazt d,Tscl_Tgfxx e, Dwgl c ,Yhgl f
               where c.dwbm =a.regdep  and f.yhbh=a.accregper and
              a.regino=b.regino and b.regino=d.regino and d.regino=e.regino and b.infotype=1 and  a.dealno=g.dealno(+)";session.createSQLQuery(queryString).list();