【问题标题】:having problem with query in JPA using Wildfly/Hibernate java.sql.SQLException: No database selected使用 Wildfly/Hibernate java.sql.SQLException 在 JPA 中查询有问题:未选择数据库
【发布时间】:2020-12-30 11:36:07
【问题描述】:

我正在尝试以下查询:

    @PersistenceContext(unitName="miscPU")
    private EntityManager em;

    public ClientCompanyDAO() {
    }
    

    public List <ClientCompany> findAllClientCompanies() {
        Query query = em.createQuery("select c from ClientCompany c");
        return query.getResultList();
    }

运行时出现错误:SQLException: No database selected from the getResultList method.

实体的设置如下:

@Entity
@Table(name="clientcompany")
public class ClientCompany extends Company implements Serializable {

这是我的 persistence.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="miscPU">
        <jta-data-source>java:/jdbc/misc</jta-data-source>
        <properties>
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.transaction.flush_before_completion" value="true"/>
        </properties>
    </persistence-unit>
    <persistence-unit name="autojobsPU">
        <jta-data-source>java:/jdbc/autojobs</jta-data-source>
        <properties>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.transaction.flush_before_completion" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

已创建 java:/jdbc/misc 数据源并在 Wildfly 19 上成功 ping。数据源上的 url 为 jdbc:mysql://localhost:3306/misc。

我可能会错过什么?

更新:根据要求,这里是堆栈跟踪。由于行数的堆栈溢出限制,IJ 不得不删除其中的一些。大概是因为它多次尝试完成查询,所以它重复了几次。

:22:49,897 WARN  [org.jboss.weld.Validator] (MSC service thread 1-5) WELD-001471: Interceptor method init defined on class com.lingosys.user.ClientCreatorBean is not defined according to the specification. It should not throw java.lang.Exception, which is a checked exception.
    at com.lingosys.user.ClientCreatorBean.init(ClientCreatorBean.java:0)
  StackTrace
13:22:50,107 INFO  [javax.enterprise.resource.webcontainer.jsf.config] (ServerService Thread Pool -- 85) Initializing Mojarra 2.3.9.SP08 for context '/LingoMavenApps'
13:22:54,403 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 85) WFLYUT0021: Registered web context: '/LingoMavenApps' for server 'default-server'
13:22:54,456 INFO  [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0010: Deployed "LingoMavenApps.war" (runtime-name : "LingoMavenApps.war")
[2020-09-14 01:22:54,465] Artifact LingoMavenApps:war: Artifact is deployed successfully
[2020-09-14 01:22:54,465] Artifact LingoMavenApps:war: Deploy took 12,006 milliseconds
13:24:20,774 DEBUG [org.jboss.as.jpa] (default task-3) created new TransactionScopedEntityManager for unit name=LingoMavenApps.war#miscPU
13:24:20,834 DEBUG [org.jboss.as.jpa] (default task-3) default task-3:transaction scoped EntityManager [LingoMavenApps.war#miscPU]: created entity manager session Local transaction (delegate=TransactionImple < ac, BasicAction: 0:ffffc0a801b9:5dfa9ce2:5f5fd10e:11 status: ActionStatus.RUNNING >, owner=Local transaction context for provider JBoss JTA transaction provider)
13:24:20,850 INFO  [org.hibernate.hql.internal.QueryTranslatorFactoryInitiator] (default task-3) HHH000397: Using ASTQueryTranslatorFactory
13:24:20,912 TRACE [org.jboss.as.jpa] (default task-3) createQuery took 133ms
13:24:20,917 DEBUG [jboss.jdbc.spy] (default task-3) java:/jdbc/misc [DataSource] getConnection()
13:24:20,926 DEBUG [jboss.jdbc.spy] (default task-3) java:/jdbc/misc [Connection] prepareStatement(select clientcomp0_.id as id1_1_, clientcomp0_.addPMSurchargeforDocTrans as addPMSur8_1_, clientcomp0_.billingEmail as billing14_1_, clientcomp0_.billingInstructions as billing13_1_, clientcomp0_.checkKnowledgeMgt as checkKn19_1_, clientcomp0_.clientPONumber as clientP18_1_, clientcomp0_.commissionType as commissi7_1_, clientcomp0_.createdBy as created20_1_, clientcomp0_.docTransPricingScheme as docTrans4_1_, clientcomp0_.dtBucket as dtBucket6_1_, clientcomp0_.guid as guid3_1_, clientcomp0_.legalEntity as legalEn15_1_, clientcomp0_.legalEntityCompany as legalEn16_1_, clientcomp0_.lingoClientNumber as lingoCl21_1_, clientcomp0_.llsClientID as llsClie12_1_, clientcomp0_.name as name2_1_, clientcomp0_.passTradosLeveraging as passTra10_1_, clientcomp0_.paymentTerms as paymentT5_1_, clientcomp0_.prospect as prospec11_1_, clientcomp0_.specialInstructions as special17_1_, clientcomp0_.usLinguistsRequired as usLingui9_1_ from clientcompany clientcomp0_)
13:24:20,954 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-3) SQL Error: 1046, SQLState: 3D000
13:24:20,954 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-3) No database selected
13:24:20,955 DEBUG [jboss.jdbc.spy] (default task-3) java:/jdbc/misc [Connection] isClosed()
13:24:20,955 DEBUG [jboss.jdbc.spy] (default task-3) java:/jdbc/misc [Connection] isClosed()
13:24:20,955 DEBUG [jboss.jdbc.spy] (default task-3) java:/jdbc/misc [Connection] clearWarnings()
13:24:20,955 DEBUG [jboss.jdbc.spy] (default task-3) java:/jdbc/misc [Connection] close()
13:24:20,961 TRACE [org.jboss.as.jpa] (default task-3) transaction association counter = 0 for default task-3:transaction scoped EntityManager [LingoMavenApps.war#miscPU]: 
13:24:20,962 TRACE [org.jboss.as.jpa] (default task-3) transaction association counter = 1 for default task-3:transaction scoped EntityManager [LingoMavenApps.war#miscPU]: 
13:24:20,962 TRACE [org.jboss.as.jpa] (default task-3) transaction association counter = 0 for default task-3:transaction scoped EntityManager [LingoMavenApps.war#miscPU]: 
13:24:20,963 DEBUG [org.jboss.as.jpa] (default task-3) default task-3:transaction scoped EntityManager [LingoMavenApps.war#miscPU]: closing entity managersession
13:24:20,965 ERROR [org.jboss.as.ejb3.invocation] (default task-3) WFLYEJB0034: EJB Invocation failed on component ClientCompanyDAO for method public java.util.List com.lingosys.jpa.ClientCompanyDAO.findAllClientCompanies(): javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:258)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:374)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:156)
    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 
<deleted>
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1515)
    at org.hibernate.query.Query.getResultList(Query.java:132)
    at com.lingosys.jpa.ClientCompanyDAO.findAllClientCompanies(ClientCompanyDAO.java:44)
    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.interceptors.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:79)
    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:249)
    ... 150 more
Caused by: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:69)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2265)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2028)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1990)
    at org.hibernate.loader.Loader.doQuery(Loader.java:949)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:351)
    at org.hibernate.loader.Loader.doList(Loader.java:2787)
    at org.hibernate.loader.Loader.doList(Loader.java:2770)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2604)
    at org.hibernate.loader.Loader.list(Loader.java:2599)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:505)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:395)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:220)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1526)
    at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1538)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1506)
    ... 180 more
Caused by: java.sql.SQLException: No database selected
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003)
    at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:504)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:60)
    ... 195 more
13:24:20,974 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (default task-3) Error Rendering View[/user/creator/company.xhtml]: org.jboss.weld.exceptions.WeldException: WELD-000049: Unable to invoke public void com.lingosys.user.ClientCreatorBean.init() throws java.lang.Exception on com.lingosys.user.ClientCreatorBean@5056953a
    at org.jboss.weld.injection.producer.DefaultLifecycleCallbackInvoker.invokeMethods(DefaultLifecycleCallbackInvoker.java:85)
    at org.jboss.weld.injection.producer.DefaultLifecycleCallbackInvoker.postConstruct(DefaultLifecycleCallbackInvoker.java:66)
    at org.jboss.weld.injection.producer.BasicInjectionTarget.postConstruct(BasicInjectionTarget.java:122)
    at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:164)
    at org.jboss.weld.util.bean.IsolatedForwardingBean.create(IsolatedForwardingBean.java:45)
    at org.jboss.weld.contexts.AbstractContext.get(AbstractContext.java:96)
    at org.jboss.weld.contexts.PassivatingContextWrapper$AbstractPassivatingContextWrapper.get(PassivatingContextWrapper.java:84)
    at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:100)
    at org.jboss.weld.bean.ContextualInstanceStrategy$CachingContextualInstanceStrategy.get(ContextualInstanceStrategy.java:177)
    at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50)
    at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:694)
    at org.jboss.weld.module.web.el.AbstractWeldELResolver.lookup(AbstractWeldELResolver.java:107)
    at org.jboss.weld.module.web.el.AbstractWeldELResolver.getValue(AbstractWeldELResolver.java:90)
    at 
<delete>
Caused by: javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:258)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:374)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:156)
    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:627)
    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 com.lingosys.jpa.ClientCompanyDAO$$$view1.findAllClientCompanies(Unknown Source)
    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.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:410)
    at org.jboss.weld.module.ejb.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:134)
    at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56)
    at org.jboss.weld.module.ejb.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:68)
    at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
    at com.lingosys.jpa.ClientCompanyDAO$Proxy$_$$_Weld$EnterpriseProxy$.findAllClientCompanies(Unknown Source)
    at com.lingosys.user.ClientCreatorBean.init(ClientCreatorBean.java:114)
    ... 107 more
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1515)
    at org.hibernate.query.Query.getResultList(Query.java:132)
    at com.lingosys.jpa.ClientCompanyDAO.findAllClientCompanies(ClientCompanyDAO.java:44)
    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.interceptors.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:79)
    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:249)
    ... 150 more
Caused by: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:69)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2265)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2028)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1990)
    at org.hibernate.loader.Loader.doQuery(Loader.java:949)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:351)
    at org.hibernate.loader.Loader.doList(Loader.java:2787)
    at org.hibernate.loader.Loader.doList(Loader.java:2770)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2604)
    at org.hibernate.loader.Loader.list(Loader.java:2599)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:505)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:395)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:220)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1526)
    at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1538)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1506)
    ... 180 more
Caused by: java.sql.SQLException: No database selected
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003)
    at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:504)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:60)
    ... 195 more

``

【问题讨论】:

  • 嗨,你能用完整的堆栈跟踪更新问题吗?它可能会为问题提供提示!
  • 根据要求,我将完整的堆栈跟踪附加到原始帖子的末尾。
  • 可悲的是,我无法从中做出任何贡献。我的建议是尝试使用简单的main 客户端连接到该数据库。从运行 WildFly 的同一台机器/VM/容器中执行此操作!使用完全相同的数据库 URL 和凭据。怎么了?还有一件事:仔细检查捆绑在应用程序中的 JAR 文件,确保没有系统提供的库(例如 Hibernate)潜入。

标签: hibernate jpa intellij-idea jakarta-ee wildfly


【解决方案1】:

确保您的数据源指向目标数据库。例如,如果您使用 MySQL 并且想要使用 my-database 数据库,则可以在 JDBC 连接 URL 中指定它,如下所示:jdbc:mysql://127.0.0.1:3306/my-database

既然您提到您使用的是 Wildfly,请检查您的 standalone.xmldomain.xml 文件中的数据源设置。

【讨论】:

  • 我检查了数据源。它指向正确的 JDBC URL。
  • 你能复制粘贴你的数据源配置吗?
  • 这里是数据源配置减去密码。
  • ``` jdbc:mysql://localhost :3306/misccom.mysql.cj.jdbc.Drivermysqlroot-name>
【解决方案2】:

好的,我发送了一个带有“use misc”的本机查询来尝试强制设置数据库。我了解到它正在尝试获取不在 MySQL 表中的字段,显然它为实体的 bean 属性执行此操作,无论您是否给它们一个 @Column 注释。原生 Hibernate 3 没有这个问题。

【讨论】:

    猜你喜欢
    • 2021-03-31
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2021-02-19
    • 1970-01-01
    • 2015-06-03
    相关资源
    最近更新 更多