Java hibernate原生sql can';虽然不起作用,但同样的查询在sql开发人员身上效果很好

Java hibernate原生sql can';虽然不起作用,但同样的查询在sql开发人员身上效果很好,java,oracle,hibernate,Java,Oracle,Hibernate,我需要你的帮助 我必须使用本机sql以防万一。我开始在sqldeveloper上编写查询。此查询在db上运行良好。但我尝试使用hibernate无法执行我的查询 查询如下(从Oracle Sql Developer复制): 这项工作做得很好(这里是结果)。 但同样的查询无法在java hibernate上运行。我有错误 以下是java代码: List result=null; SQLQuery sqlQuery=null; try{ String sql = "SELECT " +

我需要你的帮助

我必须使用本机sql以防万一。我开始在sqldeveloper上编写查询。此查询在db上运行良好。但我尝试使用hibernate无法执行我的查询

查询如下(从Oracle Sql Developer复制):

这项工作做得很好(这里是结果)。

但同样的查询无法在java hibernate上运行。我有错误

以下是java代码:

List result=null;
SQLQuery sqlQuery=null;
try{
    String sql = "SELECT " +
            "SUM(DISTINCT (Invoice.amount)) AS totalAmount," +
            "MbsFile.name," +
            "MbsFile.surname," +
            "MbsFile.oid AS mbsFileOid," +
            "MbsFile.investigationNumber," +
            "MbsFile.subscriberNo," +
            "MbsFile.identityNumber " +
            "FROM Invoice LEFT JOIN MbsFile ON Invoice.MBSFILE_OID=MbsFile.oid " +
            "LEFT JOIN MbsFile_LawyerOffice ON MbsFile_LawyerOffice.MBSFILE_OID=MbsFile.oid " +
            "WHERE MbsFile_LawyerOffice.MBSFILE_OID IS NULL " +
            "GROUP BY MbsFile.oid,MbsFile.name,MbsFile.surname,MbsFile.investigationNumber,MbsFile.subscriberNo,MbsFile.identityNumber";
    sqlQuery = currentSession().createSQLQuery(sql);
 //   sqlQuery.setResultTransformer(Transformers.aliasToBean(UnassignedMbsFileDTO.class));
    result = sqlQuery.list();
}
catch (Exception e){
    e.printStackTrace();
} 
我犯了这个错误

org.hibernate.exception.sqlgrammareexception:无法提取结果集
位于org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:80)
位于org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
位于org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
位于org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
位于org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:89)
位于org.hibernate.loader.loader.getResultSet(loader.java:2065)
位于org.hibernate.loader.loader.executeQueryStatement(loader.java:1862)
位于org.hibernate.loader.loader.executeQueryStatement(loader.java:1838)
位于org.hibernate.loader.loader.doQuery(loader.java:909)
在org.hibernate.loader.loader.doQueryAndInitializeNonLazyCollections(loader.java:354)上
位于org.hibernate.loader.loader.doList(loader.java:2553)
位于org.hibernate.loader.loader.doList(loader.java:2539)
位于org.hibernate.loader.loader.listIgnoreQueryCache(loader.java:2369)
位于org.hibernate.loader.loader.list(loader.java:2364)
位于org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:353)
位于org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1873)
位于org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:311)
位于org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:141)
位于aras.law.hibernate.dao.invoice.InvoiceDao.getMbsFilesWillBeAssigned(InvoiceDao.java:112)
在aras.law.resources.mbsFileLawyerOffice.MbsFile_LawyerOfficeResource.getAll(MbsFile_LawyerOfficeResource.java:49)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
位于com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutingVoker.\u dispatch(AbstractResourceMethodDispatchProvider.java:185)
位于com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
在io.dropwizard.hibernate.UnitOfWorkRequestDispatcher.dispatch(UnitOfWorkRequestDispatcher.java:43)
在io.dropwizard.jersey.guava.OptionalResourceMethodDispatchAdapter$OptionalRequestDispatcher.dispatch(OptionalResourceMethodDispatchAdapter.java:37)
位于com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
位于com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
位于com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
位于com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
位于com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
位于com.sun.jersey.server.impl.application.WebApplicationImpl.\u handleRequest(WebApplicationImpl.java:1542)
位于com.sun.jersey.server.impl.application.WebApplicationImpl.\u handleRequest(WebApplicationImpl.java:1473)
位于com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
位于com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
在com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)上
位于com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:540)
位于com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:715)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
在io.dropwizard.jetty.NonblockingServletHolder.handle(NonblockingServletHolder.java:49)
位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1515)
位于org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)
位于org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:348)
位于io.dropwizard.jetty.BiDiGzipFilter.doFilter(BiDiGzipFilter.java:127)
位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)
位于io.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:29)
位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)
位于io.dropwizard.jersey.filter.AllowedMethodsFilter.handle(AllowedMethodsFilter.java:44)
位于io.dropwizard.jersey.filter.AllowedMethodsFilter.doFilter(AllowedMethodsFilter.java:39)
位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)
在com.google.inject.servlet.DefaultFilterPipeline.dispatch(DefaultFilterPipeline.java:43)
位于com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)
位于org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:519)
位于org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1097)
位于org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:448)
在org.eclipse.jetty.s
List result=null;
SQLQuery sqlQuery=null;
try{
    String sql = "SELECT " +
            "SUM(DISTINCT (Invoice.amount)) AS totalAmount," +
            "MbsFile.name," +
            "MbsFile.surname," +
            "MbsFile.oid AS mbsFileOid," +
            "MbsFile.investigationNumber," +
            "MbsFile.subscriberNo," +
            "MbsFile.identityNumber " +
            "FROM Invoice LEFT JOIN MbsFile ON Invoice.MBSFILE_OID=MbsFile.oid " +
            "LEFT JOIN MbsFile_LawyerOffice ON MbsFile_LawyerOffice.MBSFILE_OID=MbsFile.oid " +
            "WHERE MbsFile_LawyerOffice.MBSFILE_OID IS NULL " +
            "GROUP BY MbsFile.oid,MbsFile.name,MbsFile.surname,MbsFile.investigationNumber,MbsFile.subscriberNo,MbsFile.identityNumber";
    sqlQuery = currentSession().createSQLQuery(sql);
 //   sqlQuery.setResultTransformer(Transformers.aliasToBean(UnassignedMbsFileDTO.class));
    result = sqlQuery.list();
}
catch (Exception e){
    e.printStackTrace();
}