简体   繁体   English

如何修复 java 的本机查询中的无效列名

[英]how can i fix invalid column name in native query in java

Good time美好时光

I have a problem with mapping my result set in entity manager in nativ query in java and I get an Invalid column name error.我在 java 的 nativ 查询中将我的结果集映射到实体管理器中时遇到问题,并且出现无效列名错误。 Please help me请帮我

entity class is:实体 class 是:

package model.entity;
import javax.ejb.LocalBean;
import javax.ejb.Stateful;
import java.io.Serializable;
import java.math.BigDecimal;

@LocalBean
@Stateful
@javax.persistence.Entity
@javax.persistence.Table(name = "TARAZ", schema = "SAB113")
public final class BallanceEntity implements Serializable {
   private Long id ;
   private String branchCode ;
   private String accountNumber ;
   private Integer dateTr ;
   private String commentPublic ;
   private  String obl ;
   private Long bed ;
   private Long bes ;
   private  String trType ;
   private String trComment ;
   public BallanceEntity() {
   }

   public BallanceEntity(Long id, String branchCode, String accountNumber,
   Integer dateTr,String co
                         String obl, Long bed, Long bes, String trType, String trComment) {
       this.id = id;
       this.branchCode = branchCode;
       this.accountNumber = accountNumber;
       this.dateTr = dateTr;
       this.commentPublic = commentPublic;
       this.obl = obl;
       this.bed = bed;
       this.bes = bes;
       this.trType = trType;
       this.trComment = trComment;
   }
  
   @javax.persistence.Id
   @javax.persistence.Column(name = "ID", columnDefinition = "NUMBER", 
   nullable = true, unique = tru
   public Long getId() {
       return id;
   }
   
   public void setId(Long id) {
       this.id = id;
   }
   
   @javax.persistence.Basic
   @javax.persistence.Column(name = "BRANCH_CODE", columnDefinition = 
   "VARCHAR2(6)", nullable = true
   public String getBranchCode() {
       return branchCode;
   }
   
   public void setBranchCode(String branchCode) {
       this.branchCode = branchCode;
   }
   
   @javax.persistence.Basic
   @javax.persistence.Column(name = "ACCOUNT_NUMBER",
   columnDefinition = "VARCHAR2(20)", nullable = 
   public String getAccountNumber() {
       return accountNumber;
   }
   
   public void setAccountNumber(String accountNumber) {
       this.accountNumber = accountNumber;
   }
   
   @javax.persistence.Basic
   @javax.persistence.Column(name = "DATE_TR", columnDefinition = "NUMBER(7)", nullable = true)
   public Integer getDateTr() {
       return dateTr;
   }
   
   public void setDateTr(Integer dateTr) {
       this.dateTr = dateTr;
   }
   
   @javax.persistence.Basic
   @javax.persistence.Column(name = "COMMENT_PUBLIC", 
   columnDefinition = "VARCHAR2(32)", nullable = 
   public String getCommentPublic() {
       return commentPublic;
   }
   
   public void setCommentPublic(String commentPublic) {
       this.commentPublic = commentPublic;
   }
   
   @javax.persistence.Basic
   @javax.persistence.Column(name = "OBL", columnDefinition = "CHAR(10)", nullable = true)
   public String getObl() {
       return obl;
   }
   
   public void setObl(String obl) {
       this.obl = obl;
   }
   
   @javax.persistence.Basic
   @javax.persistence.Column(name = "BED", columnDefinition = "NUMBER", nullable = true)
   public Long getBed() {
       return bed;
   }
   
   public void setBed(Long bed) {
       this.bed = bed;
   }
   
   @javax.persistence.Basic
   @javax.persistence.Column(name = "BES", columnDefinition = "NUMBER", nullable = true)
   public Long getBes() {
       return bes;
   }
   
   public void setBes(Long bes) {
       this.bes = bes;
   }
    
   @javax.persistence.Basic
   @javax.persistence.Column(name = "TR_TYPE", columnDefinition = "CHAR(3)", nullable = true)
   public String getTrType() {
       return trType;
   }
   
   public void setTrType(String trType) {
       this.trType = trType;
   }
   
   @javax.persistence.Basic
   @javax.persistence.Column(name = "TR_COMMENT", columnDefinition = "CHAR(32)", nullable =true)
   public String getTrComment() {
       return trComment;
   }
   
   public void setTrComment(String trComment) {
       this.trComment = trComment;
   }
 }
     

and native query is本机查询是

package model.bl;
import model.entity.AccountBillEntity;
import model.entity.BallanceEntity;
import model.pattern.CDIBaseModel;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.*;
import javax.transaction.Transactional;
import java.io.Serializable;
import java.sql.Connection;
import java.util.List;

@LocalBean
@Stateless
public class BallancRepMgr extends CDIBaseModel implements Serializable {


    @Transactional
    public List<BallanceEntity> selectKrsReport(Integer repDateFrom, Integer repDateTo,
                                                String branchCode, String ballanceType) throws   

        List<BallanceEntity> result = null;
    

        if (ballanceType.compareTo("1") == 0) {
          

       result = entityManager.createNativeQuery
    ("SELECT ROW_NUMBER() over (ORDER BY ACCOUNT_NUMBER) as ID,BRANCH_CODE,ACCOUNT_NUMBER,OBL," 
    "       (CASE WHEN SUM(BED) + SUM (BES) > 0 THEN SUM(BED) + SUM(BES) ELSE 0 END) as BED ," +
    "       (CASE WHEN SUM(BED) + SUM(BES) <=0 THEN SUM(BED) + SUM(BES) ELSE 0 END ) as BES ," +
                            "       MAX(TR_COMMENT) as TR_COMMENT FROM TARAZ " +
                            "WHERE DATE_TR BETWEEN :repDateFrom AND :repDateTo " +
                            "GROUP BY BRANCH_CODE, ACCOUNT_NUMBER, OBL " +
                            "HAVING BRANCH_CODE=:branchCode", BallanceEntity.class)
                    .setParameter("branchCode", branchCode)
                    .setParameter("repDateFrom", repDateFrom)
                    .setParameter("repDateTo", repDateTo)
                    .getResultList();
        }

                  if (result.isEmpty())
            System.out.println("empty");


        return result;
    }

}

my error log is:我的错误日志是:

14:25:15,893 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-2) Invalid column name
14:25:15,900 ERROR [org.jboss.as.ejb3.invocation] (default task-2) WFLYEJB0034: EJB Invocation failed on component BallancRepMgr for method public java.util.List model.bl.BallancRepMgr.selectKrsReport(java.lang.Integer,java.lang.Integer,java.lang.String,java.lang.String) throws java.lang.Exception: javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute query
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:246)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:362)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:144)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
    at org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:72)
    at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:89)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:60)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:438)
    at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:618)
    at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:57)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53)
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
    at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:81)
    at model.bl.BallancRepMgr$$$view36.selectKrsReport(Unknown Source)
    at controller.BallanceRepCtrl.load(BallanceRepCtrl.java:116)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.sun.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:157)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:265)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:280)
    at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
    at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
    at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
    at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
    at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:126)
    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:72)
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:490)
    at javax.faces.component.UICommand.broadcast(UICommand.java:211)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:847)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1395)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:58)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:76)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
    at javax.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:707)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:451)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:55)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:364)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
    at java.lang.Thread.run(Thread.java:748)
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute query
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1514)
    at org.hibernate.query.Query.getResultList(Query.java:132)
    at model.bl.BallancRepMgr.selectKrsReport(BallancRepMgr.java:50)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
    at org.jboss.as.weld.ejb.DelegatingInterceptorInvocationContext.proceed(DelegatingInterceptorInvocationContext.java:92)
    at org.jboss.weld.interceptor.proxy.WeldInvocationContextImpl.interceptorChainCompleted(WeldInvocationContextImpl.java:107)
    at org.jboss.weld.interceptor.proxy.WeldInvocationContextImpl.proceed(WeldInvocationContextImpl.java:126)
    at com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorBase.invokeInCallerTx(TransactionalInterceptorBase.java:186)
    at com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorRequired.doIntercept(TransactionalInterceptorRequired.java:55)
    at com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorBase.intercept(TransactionalInterceptorBase.java:88)
    at com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorRequired.intercept(TransactionalInterceptorRequired.java:47)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:73)
    at org.jboss.weld.interceptor.proxy.WeldInvocationContextImpl.invokeNext(WeldInvocationContextImpl.java:92)
    at org.jboss.weld.interceptor.proxy.WeldInvocationContextImpl.proceed(WeldInvocationContextImpl.java:124)
    at org.jboss.weld.bean.InterceptorImpl.intercept(InterceptorImpl.java:105)
    at org.jboss.as.weld.ejb.DelegatingInterceptorInvocationContext.proceed(DelegatingInterceptorInvocationContext.java:82)
    at org.jboss.as.weld.interceptors.EjbComponentInterceptorSupport.delegateInterception(EjbComponentInterceptorSupport.java:60)
    at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:77)
    at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:89)
    at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:102)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:40)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53)
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:237)
    ... 102 more
Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
    at org.hibernate.loader.Loader.doList(Loader.java:2692)
    at org.hibernate.loader.Loader.doList(Loader.java:2672)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2506)
    at org.hibernate.loader.Loader.list(Loader.java:2501)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:338)
    at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:2223)
    at org.hibernate.internal.AbstractSharedSessionContract.list(AbstractSharedSessionContract.java:1069)
    at org.hibernate.query.internal.NativeQueryImpl.doList(NativeQueryImpl.java:170)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1505)
    ... 149 more
Caused by: java.sql.SQLException: Invalid column name
    at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3757)
    at oracle.jdbc.driver.InsensitiveScrollableResultSet.findColumn(InsensitiveScrollableResultSet.java:264)
    at oracle.jdbc.driver.GeneratedResultSet.getString(GeneratedResultSet.java:594)
    at org.jboss.jca.adapters.jdbc.WrappedResultSet.getString(WrappedResultSet.java:1985)
    at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:62)
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:257)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:243)
    at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:329)
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:3012)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1746)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1672)
    at org.hibernate.loader.Loader.getRow(Loader.java:1561)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:731)
    at org.hibernate.loader.Loader.processResultSet(Loader.java:990)
    at org.hibernate.loader.Loader.doQuery(Loader.java:948)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:340)
    at org.hibernate.loader.Loader.doList(Loader.java:2689)
    ... 157 more

14:25:15,903 ERROR [core.BaseController] (default task-2) Error: Query Error ... 
javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute query

I think the problem is that you're telling Hibernate to hydrate the query results as a list of BallanceEntity objects, but that's not what the query is returning.我认为问题在于您告诉 Hibernate 将查询结果水合为BallanceEntity对象的列表,但这不是查询返回的内容。

You have a few columns missing from your SELECT statement. SELECT语句中缺少几列。 See if it works after adding them in.添加后看看是否有效。

Or if you need to exclude those columns from the results, you can change the result class to Object[] instead of BallanceEntity .或者,如果您需要从结果中排除这些列,您可以将结果 class 更改为Object[]而不是BallanceEntity

Mention error specifically says, after returning results, while mapping to BallanceEntity from resultset, it is unable to resolve a column name which is been passed.提及错误具体说,返回结果后,从结果集映射到BallanceEntity时,无法解析传递的列名。

Caused by: java.sql.SQLException: Invalid column name
    at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3757)
    at oracle.jdbc.driver.InsensitiveScrollableResultSet.findColumn(InsensitiveScrollableResultSet.java:264)

Put a debugger at getColumnIndex(...) and see what was the column name that you get here before it throws that error.getColumnIndex(...)处放置一个调试器,并查看在引发该错误之前您在此处获得的列名是什么。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何修复 Java 中的无效参数运算符? - How can I fix an invalid arugement operator in Java? Hibernate 本机查询:无效的列名错误 SQL-17006 - Hibernate native query : Invalid Column Name Error SQL-17006 如果我正在编写只有特定列的本机查询,如何使用 Jpa 在 postman 中显示列名 - How I can show column name in postman using Jpa if I am writing native query having only specific columns 我该如何修复这个java? - How can I fix this java? java.sql.SQLException:无效的列索引..如何在以下查询中解决此错误? - java.sql.SQLException: Invalid column index .. how can we solve this error in following query? 从Java生成时,为什么本机linux telnet客户端的“终端速度”为0,0(以及如何解决)? - Why is the “terminal speed” of a native linux telnet client 0,0 when spawned from Java (and how can I fix it)? 本机SQL抛出无效的列名异常 - Native SQL throwing Invalid Column Name Exception JpaRepository 本机查询:无效的表名 - JpaRepository native query: invalid table name SQL-Java:无效的列名:无效的列名 - SQL - Java : Invalid column name :Invalid column name 如何使用JPA本机查询正确访问where子句内的varray列? - How can I properly access a varray column inside of a where clause using a JPA Native Query?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM