引起原因:java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在

ORA-00942:表或视图不存在:从以下位置更新Spring Boot之后            1.4.9至2.0.9,然后休眠至5.2.18.FINAL

我通过实体管理器使用它可以正常工作,但是当我尝试通过  然后,JPA存储库将引发此错误。有人可以帮我吗?
 我已经使用了以下依赖项

      <hibernate.version>5.2.18.Final</hibernate.version>

      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.0.9.RELEASE</version>
          </dependency>

     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>2.0.9.RELEASE</version>
          </dependency>

    <dependency>
          <groupId>com.oracle.jdbc</groupId>
          <artifactId>ojdbc8</artifactId>
          <version>12.2.0.1</version>
          <scope>compile</scope>
        </dependency>

我的JPAConfig.java

         @ConditionalOnProperty(name = "embedded",havingValue = "true",matchIfMissing = true)
         @Configuration
         @RefreshScope
         @EnableTransactionmanagement
         @EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactory",transactionmanagerRef = "transactionmanager",basePackages = {
            "kgfsl" })
         public class JPAConfig {

        @Bean
        public Validator getValidator() {
            return new LocalValidatorFactoryBean();
        }

        @Value("${db.url}")
        String dbUrl = "jdbc:oracle:thin:@10.100.1.95:1539:HFSL12C";

        @Value("${db.driverClassname}")
        String dbDriverClassname = "oracle.jdbc.driver.OracleDriver";

        @Value("${db.username}")
        String dbusername = "QARMSV2";

        @Value("${db.password}")
        String dbPassword = "QARMSV2";

        @Value("${db.databaseType}")
        String dbdatabaseType = "Oracle";

        @Value("${encryptionOn:false}")
        private boolean encryptionOn;

        @Bean
        @Primary
        @RefreshScope
        public DataSource dataSource() {
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassname(dbDriverClassname);
            dataSource.setUrl(dbUrl);
            dataSource.setusername(dbusername);
            if (encryptionOn)
                dataSource.setPassword(CryptoUtil.decrypt(dbPassword));
            else
                dataSource.setPassword(dbPassword);
            return dataSource;
        }

        @Bean
        @Primary
        @RefreshScope
        public Map<String,Object> jpaProperties() {
            Map<String,Object> props = new HashMap<>();
            props.put("hibernate.dialect",ApplicationStartUpFactory.getDialect(dbdatabaseType));       
            props.put("javax.persistence.validation.mode","none");
            props.put("hibernate.id.new_generator_mappings","false");  
            //props.put("hibernate.physical_naming_strategy","org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl");
            // 
            props.put("hibernate.ejb.interceptor","kgfsl.framework.config.AuditColumnWiseInterceptor");
            return props;
            }



            public static int batchSize() {
            return Integer.valueOf(Dialect.DEFAULT_BATCH_SIZE);
            }

           @Primary
           @Bean
           public JpaVendorAdapter jpaVendorAdapter() {
            HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new 
            HibernateJpaVendorAdapter();
            hibernateJpaVendorAdapter.setShowSql(true);
            hibernateJpaVendorAdapter.setGenerateDdl(false); 
            hibernateJpaVendorAdapter.
            setDatabase(ApplicationStartUpFactory.getJPAVendor(dbdatabaseType));
            return hibernateJpaVendorAdapter;
            }

           @Primary
           @Bean
           public PlatformTransactionmanager transactionmanager() {
            return new 
           JpaTransactionmanager(entityManagerFactory().getObject());
            }

          @Bean
          @Primary
          public LocalContainerEntityManagerFactoryBean 
            entityManagerFactory() {
            LocalContainerEntityManagerFactoryBean lef = new 
            LocalContainerEntityManagerFactoryBean();
            lef.setDataSource(this.dataSource());
            lef.setJpaPropertyMap(this.jpaProperties());
            lef.setJpaVendorAdapter(this.jpaVendorAdapter());

            // lef.setPackagesToScan("hfsl");
            String entityPackages = "hfsl.*.*";
            lef.setPackagesToScan(entityPackages.split(","));
            lef.setPersistenceUnitName("default"); // <- giving 'default' 
           as name

            return lef;
            }

            @Bean()
            @Qualifier("jdbcTemplate")
            public JdbcTemplate jdbcTemplate() {
            return new JdbcTemplate(this.dataSource());
            }

        @Bean(name = "namedParameterJdbcTemplate")
        public NamedParameterJdbcTemplate namedParameterJdbcTemplate() {
            return new NamedParameterJdbcTemplate(this.dataSource());
          }

        @SuppressWarnings("unused")
        private DatabasePopulator createDatabasePopulator() {
            ResourceDatabasePopulator databasePopulator = new 
           ResourceDatabasePopulator();
            databasePopulator.setContinueonError(false);
            /*
             * if (new ClasspathResource("basic_table.sql").exists())
             * databasePopulator.addScript(new 
         ClasspathResource("basic_table.sql"));
             */
            return databasePopulator;
           }

           @Bean
           @Primary
           public PhysicalNamingStrategy physical() {
            return new PhysicalNamingStrategyStandardImpl();
            }

          @Bean
          @Primary
          public ImplicitNamingStrategy implicit() {
            return new ImplicitNamingStrategyLegacyJpaImpl ();
          }
          }

我遇到以下错误:

Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612)
at 

oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:747)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780)
    at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3822)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:60)
    ... 161 more
Caused by: Error : 942,Position : 1387,Sql = select client0_.CLIENT_CODE as CLIENT_CODE1_63_,client0_.createdAt as createdAt2_63_,client0_.createdBy as createdBy3_63_,client0_.active as active4_63_,client0_.approvedAt as approvedAt5_63_,client0_.approvedBy as approvedBy6_63_,client0_.modifiedAt as modifiedAt7_63_,client0_.modifiedBy as modifiedBy8_63_,client0_.AREA as AREA9_63_,client0_.BUILDING as BUILDING10_63_,client0_.CATEGORY_CODE as CATEGORY_CODE11_63_,client0_.CITY as CITY12_63_,client0_.CLIENT_CREATED_FROM as CLIENT_CREATED_FR13_63_,client0_.CLIENT_TYPE as CLIENT_TYPE14_63_,client0_.COUNTRY as COUNTRY15_63_,client0_.EMAIL_ID as EMAIL_ID16_63_,client0_.IS_ERROR as IS_ERROR17_63_,client0_.FAX_NO as FAX_NO18_63_,client0_.FULL_NAME as FULL_NAME19_63_,client0_.GLOBAL_REF_ID as GLOBAL_REF_ID20_63_,client0_.id as id21_63_,client0_.MOBILE_NO as MOBILE_NO22_63_,client0_.NAME as NAME23_63_,client0_.PAN_NO as PAN_NO24_63_,client0_.IS_PARENT as IS_PARENT25_63_,client0_.PARENT_CODE as PARENT_CODE26_63_,client0_.PHONE_NO as PHONE_NO27_63_,client0_.PIN_CODE as PIN_CODE28_63_,client0_.PRIORITY_TYPE as PRIORITY_TYPE29_63_,client0_.IS_PROP as IS_PROP30_63_,client0_.REMARK as REMARK31_63_,client0_.SEBI_REG_EXPIRY_DATE as SEBI_REG_EXPIRY_D32_63_,client0_.SEBI_REG_NO as SEBI_REG_NO33_63_,client0_.STATE as STATE34_63_,client0_.STREET as STREET35_63_,client0_.USER_ID as USER_ID36_63_ from M_CLIENT client0_,OriginalSql = select client0_.CLIENT_CODE as CLIENT_CODE1_63_,Error Msg = ORA-00942: table or view does not exist

    at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498)
    ... 176 more
zhuzheqi2096409 回答:引起原因:java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在

由于查询时间过长,无法调试,因此需要一些调试步骤

  1. 使用SQL plus(Oracle客户端)或Toad连接到数据库
  2. 使用QARMSV2 / QARMSV2连接
  3. 执行了以下查询
  4. 如果查询有效,请执行相同的程序纯JDBC程序
  

选择client0_.CLIENT_CODE作为CLIENT_CODE1_63_,client0_.createdAt   如createdAt2_63_,client0_.createdBy如createdBy3_63_,   client0_.active为active4_63_,client0_.approvedAt为   批准为At5_63_,客户0_.approvedBy为批准为By6_63_,   client0_.modifiedAt作为modifiedAt7_63_,client0_.modifiedBy作为   ModifyBy8_63_,client0_.AREA为AREA9_63_,client0_.BUILDING为   BUILDING10_63_,client0_.CATEGORY_CODE作为CATEGORY_CODE11_63_,   client0_.CITY为CITY12_63_,client0_.CLIENT_CREATED_FROM为   CLIENT_CREATED_FR13_63_,client0_.CLIENT_TYPE为CLIENT_TYPE14_63_,   client0_.COUNTRY为COUNTRY15_63_,client0_.EMAIL_ID为   EMAIL_ID16_63_,client0_.IS_ERROR为IS_ERROR17_63_,client0_.FAX_NO   作为FAX_NO18_63_,client0_.FULL_NAME作为FULL_NAME19_63_,   client0_.GLOBAL_REF_ID为GLOBAL_REF_ID20_63_,client0_.id为   id21_63_,client0_.MOBILE_NO为MOBILE_NO22_63_,client0_.NAME为   NAME23_63_,client0_.PAN_NO为PAN_NO24_63_,client0_.IS_PARENT为   IS_PARENT25_63_,客户端0_.PARENT_CODE为PARENT_CODE26_63_,   client0_.PHONE_NO为PHONE_NO27_63_,client0_.PIN_CODE为   PIN_CODE28_63_,客户端0_.PRIORITY_TYPE作为PRIORITY_TYPE29_63_,   client0_.IS_PROP为IS_PROP30_63_,client0_.REMARK为REMARK31_63_,   client0_.SEBI_REG_EXPIRY_DATE为SEBI_REG_EXPIRY_D32_63_,   client0_.SEBI_REG_NO为SEBI_REG_NO33_63_,client0_.STATE为   STATE34_63_,client0_.STREET作为STREET35_63_,client0_.USER_ID作为   来自M_CLIENT client0 _

的USER_ID36_63_
本文链接:https://www.f2er.com/3153161.html

大家都在问