在weblogic服务器上部署Spring启动Web应用程序后,将错误收到ORA-01427:单行子查询返回多行

问题描述 投票:1回答:1

我是春季启动的新手,weblogic用spring boot + oracle + weblogic + jndi创建了spring boot webapp现在当我尝试在weblogic服务器上部署时,它显示处理部署weblogic服务器5-10分钟然后给出此错误,ORA-01427:单行子查询返回多行

完整堆栈跟踪在下面,

<org.hibernate.jpa.internal.util.LogHelper> <LogHelper> <logPersistenceUnitInformation> <HHH000204: Processing PersistenceUnitInfo [
        name: default
        ...]> 
    2018-09-04 14:07:28.489  INFO 23980 --- [ (self-tuning)'] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
        name: default
        ...]
    <org.hibernate.Version> <Version> <logVersion> <HHH000412: Hibernate Core {5.2.16.Final}> 
    2018-09-04 14:07:28.656  INFO 23980 --- [ (self-tuning)'] org.hibernate.Version                    : HHH000412: Hibernate Core {5.2.16.Final}
    <org.hibernate.cfg.Environment> <Environment> <<clinit>> <HHH000206: hibernate.properties not found> 
    2018-09-04 14:07:28.660  INFO 23980 --- [ (self-tuning)'] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
    <org.hibernate.annotations.common.reflection.java.JavaReflectionManager> <JavaReflectionManager> <<clinit>> <HCANN000001: Hibernate Commons Annotations {5.0.1.Final}> 
    2018-09-04 14:07:28.731  INFO 23980 --- [ (self-tuning)'] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
    <org.hibernate.dialect.Dialect> <Dialect> <<init>> <HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect> 
    2018-09-04 14:07:28.924  INFO 23980 --- [ (self-tuning)'] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect
        018-09-03 10:56:17.148  WARN 11372 --- [ (self-tuning)'] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1427, SQLState: 21000
        2018-09-03 10:56:17.148  WARN 11372 --- [ (self-tuning)'] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1427, SQLState: 21000
        2018-09-03 10:56:17.148 ERROR 11372 --- [ (self-tuning)'] o.h.engine.jdbc.spi.SqlExceptionHelper   : ORA-01427: single-row subquery returns more than one row

        2018-09-03 10:56:17.148 ERROR 11372 --- [ (self-tuning)'] o.h.engine.jdbc.spi.SqlExceptionHelper   : ORA-01427: single-row subquery returns more than one row

        2018-09-03 10:56:17.151  WARN 11372 --- [ (self-tuning)'] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.DataException: Error accessing tables metadata
        2018-09-03 10:56:17.151  WARN 11372 --- [ (self-tuning)'] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.DataException: Error accessing tables metadata
        2018-09-03 10:56:17.151  INFO 11372 --- [ (self-tuning)'] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
        2018-09-03 10:56:19.141  INFO 11372 --- [ (self-tuning)'] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.
        2018-09-03 10:56:19.152  INFO 11372 --- [ (self-tuning)'] ConditionEvaluationReportLoggingListener : 

        Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
        2018-09-03 10:56:19.158 ERROR 11372 --- [ (self-tuning)'] o.s.boot.SpringApplication               : Application run failed

        org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.DataException: Error accessing tables metadata
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1706)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:579)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501)
            at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
            at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
            at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1089)
            at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:859)
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
            at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
            at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:155)
            at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:135)
            at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:87)
            at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:172)
            at weblogic.servlet.internal.WebAppServletContext.initContainerInitializer(WebAppServletContext.java:1425)
            at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1364)
            at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1345)
            at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1917)
            at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3101)
            at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1843)
            at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:884)
            at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)
            at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)
            at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
            at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)
            at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
            at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)
            at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)
            at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
            at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:78)
            at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52)
            at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:752)
            at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
            at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:262)
            at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:52)
            at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
            at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:90)
            at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:274)
            at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:507)
            at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:53)
            at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:202)
            at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:52)
            at weblogic.management.deploy.internal.ConfiguredDeployments$2.doItem(ConfiguredDeployments.java:741)
            at weblogic.management.deploy.internal.parallel.BucketInvoker$2.run(BucketInvoker.java:95)
            at weblogic.work.ContextWrap.run(ContextWrap.java:46)
            at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:670)
            at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)
            at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)
            at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)
            at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
            at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:644)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:415)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:355)
        Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.DataException: Error accessing tables metadata
            at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:402)
            at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377)
            at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1765)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1702)
            ... 56 common frames omitted
        Caused by: org.hibernate.exception.DataException: Error accessing tables metadata
            at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:118)
            at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
            at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
            at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
            at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.convertSQLException(InformationExtractorJdbcDatabaseMetaDataImpl.java:98)
            at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.populateTablesWithColumns(InformationExtractorJdbcDatabaseMetaDataImpl.java:383)
            at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getTables(InformationExtractorJdbcDatabaseMetaDataImpl.java:337)
            at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.getTablesInformation(DatabaseInformationImpl.java:120)
            at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:65)
            at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:207)
            at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114)
            at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183)
            at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)
            at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:312)
            at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:462)
            at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892)
            at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57)
            at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)
            at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390)
            ... 60 common frames omitted
        Caused by: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row

            at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:495)
            at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:447)
            at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1055)
            at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:624)
            at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:253)
            at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:613)
            at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:214)
            at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:1004)
            at oracle.jdbc.driver.OracleStatement.fetchMoreRows(OracleStatement.java:3458)
            at oracle.jdbc.driver.InsensitiveScrollableResultSet.fetchMoreRows(InsensitiveScrollableResultSet.java:737)
            at oracle.jdbc.driver.InsensitiveScrollableResultSet.absoluteInternal(InsensitiveScrollableResultSet.java:693)
            at oracle.jdbc.driver.InsensitiveScrollableResultSet.next(InsensitiveScrollableResultSet.java:407)
            at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.populateTablesWithColumns(InformationExtractorJdbcDatabaseMetaDataImpl.java:359)
            ... 73 common frames omitted
        Caused by: oracle.jdbc.OracleDatabaseException: ORA-01427: single-row subquery returns more than one row

            at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:499)
            ... 85 common frames omitted

任何快速帮助在这里都非常感谢。看来春季启动jpa hibernate存在问题。在错误中显示的sql查询,我不是从代码调用,它可能是默认调用api,请提供你的支持。

java oracle spring-boot spring-data-jpa weblogic12c
1个回答
0
投票

如果没有看到SQL查询,很难说,但看起来你有一个查询,它提供了多行,并在方程中使用。

例如:

Selecct id1 from table1 where num1=(Select num2 from table2 where id2=2)

如果内部选择只返回一行,则可以工作。当它返回几行时你会得到:

ORA-01427:单行子查询返回多行

您可以通过以下几种方式修复它:

Select id1 from table1 where num1 IN (Select num2 from table2 where id2=2)

要么

Select id1 from table1 where num1=(Select MAX(num2) from table2 where id2=2)
© www.soinside.com 2019 - 2024. All rights reserved.