当前位置: 首页 > 知识库问答 >
问题:

如何访问Spring Boot批处理应用程序中不同模式的元数据表?

冷宏茂
2023-03-14

在我的Spring Boot应用程序中,我喜欢使用带有特定模式的Spring Batch元表。留档建议使用表前缀。

我尝试将batch.table.prefix=abc.BATCH_添加到属性文件中。我还尝试覆盖配置:

@Configuration
@EnableBatchProcessing
public class BatchConfig {

    @Bean
    public JobRepository jobRepository(DataSource dataSource) throws Exception {
        final JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
        factory.setDataSource(dataSource);
        factory.setTablePrefix("abc.BATCH_");
        factory.setTransactionManager(transactionManager(dataSource));
        factory.afterPropertiesSet();
        return factory.getObject();
    }

    @Bean
    public JobExplorer jobExplorer(DataSource dataSource) throws Exception {
        final JobExplorerFactoryBean factory = new JobExplorerFactoryBean();
        factory.setDataSource(dataSource);
        factory.setTablePrefix("abs.BATCH_");
        factory.afterPropertiesSet();
        return factory.getObject();
    }

    @Bean
    public PlatformTransactionManager transactionManager(DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    ...
}

但我总是得到错误:由:org引起。h2。jdbc。JdbcSQLException:未找到表“批处理作业实例”;SQL语句:从批处理作业实例中选择作业实例ID、作业名称,其中作业名称=?而JOB_KEY=?[42102-182]

共有2个答案

澹台展鹏
2023-03-14

在我的例子中,我使用mysql作为数据库,我得到了这个错误。我下定决心:

2.将insert和create查询粘贴到您使用过的数据库(如mysql、mongo、hsqldb等)中并全部执行,将创建所需的表,并将表中的数据插入相应的表中。

3.运行批处理程序,它会找到“batch_job_instance”表和其他必需的表。

楚建柏
2023-03-14

我认为使用@EnableBatchProcessing更改存储库/资源管理器的最佳方法是提供自己的BatchConfigurer(只是一个bean定义)。您可以轻松地扩展其中一个现有实例。

 类似资料:
  • 我的应用程序中有一个连接到Oracle数据库的数据源。是否可以通过此数据源访问另一个包含Spring批处理元数据表的模式?此数据源的用户拥有访问其他架构的所有权限。 我已经尝试过JobRepository的“tablePrefix”属性,例如“Schema.batch\u0”。但它不起作用。简单地说,我搜索告诉Spring批处理访问元数据表的方法,如“select….from Schema.bat

  • 我想使用不同的模式来保存Spring批处理表。我可以在<code>JobRepositoryFactoryBean<code>中看到我的新数据源。但这些表仍然是在另一个shcema中创建的,在那里我有业务表。我在这里读到了可以使用<code>数据源的soemwhere。setValidationQuery来更改模式,但仍然不起作用。我能解决这个问题。下面是<code>JobRepositoryFa

  • 现在我的问题是 < li >如何更改相应的Job和JobInstance JAVA类以及所有相关的CRUD以反映上述更改。我假设我需要扩展Job和JobInstance的新类,比如AppJob和AppJobInstance。还要扩展JobInstanceDao,比如AppJobInstanceDao。然后将其挂接到JPA存储库等。,我需要扩展JobRepositoryFactoryBean,主要是

  • 我在自己的oracle数据库中使用以下链接创建了spring批处理元数据表 https://github.com/spring-projects/spring-batch/tree/main/spring-batch-core/src/main/resources/org/springframework/batch/core 但是当我运行我的Spring批处理时,它会抛出错误: 目前我使用的是sp

  • 问题内容: 在此URL中,我有一些Json数据。如何 使用该URL将数据获取到我的andorid应用程序。 我在Google中看到过引用。但是没有解决办法。 我是Andorid的新手。 请帮我。 问题答案: 做这个 : 步骤-1在您的gradle中导入排球库: 实现’com.android.volley:volley:1.1.0’ 然后在Java中编写以下代码:

  • 我正在使用以下技术编写批处理:Spring Boot来运行应用程序:V1.5.3。RELEASE Spring Batch with Spring Batch Config: spring-batch-架构体系V3.0.7。将我的通用DAO的Spring Data发布到业务数据库: 我想在另一个数据库中写入元数据(例如在内存HSQL或H2中),但我找不到方法,因为上下文正在同一个数据库中写入元数据