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

Spring批处理“对象名BATCH_JOB_INSTANCE无效”

辛弘壮
2023-03-14

我创建了一个spring批处理来查询Azure SQL server数据库并将数据写入CSV文件。我没有数据库的create权限。运行批处理时,我得到以下错误无效对象名BATCH_JOB_INSTANCE。我不希望在主数据库中创建spring批处理元数据表。或者,如果我可以将它们放在另一个本地或内存中的db中,比如h2db,也会很有帮助。我还添加了spring-batch-initialize-schema=never,这里的大多数类似问题的答案都是这样的,但这没有帮助。

编辑:

我通过扩展DefaultBatchConfigureer类并重写SetDataSource方法,从而在内存映射存储库中创建元数据表,阻止元数据表创建到主数据库中,解决了Invalid Object Name错误。现在我想尝试两种选择:

    null
@Configuration
public class SpringBatchConfig extends DefaultBatchConfigurer{

@Override
    public void setDataSource(DataSource datasource) {

    }
...
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

spring-batch-initialize-schema=never
spring.batch.job.enabled=false

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect

共有1个答案

仲孙思源
2023-03-14

如何在本地db或内存db(如H2DB)中创建元数据表。

您可以为此使用spring.batch.initialize-schema=embedded

或者,如果我已经在主数据库中创建了元数据表,那么它的模式与我从主表中获取的模式不同。如何将我的作业指向另一个模式中的那些元数据表,以便在这些元数据表中存储作业和步骤详细数据。

 类似资料:
  • 我的应用程序中堆满了spring boot,它不想运行模式或表,只想连接到我的数据库SQL Server和查询信息,所以我在文件application.properties中禁用了这一行 但是不工作,我不知道什么是错的,已经配置了我的数据源,提前谢谢,我希望有人能帮助我,对不起我的英语很差。 我使用的是spring boot 2.2.6,我的DataSourceConfiguration代码 这里

  • 主要内容:创建别名,删除别名,替换别名别名表示现有命令创建快捷键或关键字。 假设想要执行下面的命令,不是使用选项的目录列表命令,而不是在目录列表中显示所有必要的细节。 假设如果要创建这个命令的快捷方式如下。 当要执行命令时,可以简单地键入这个单词。这个词现在已经成为命令的别名。 创建别名 别名通过使用命令进行管理。 语法 其中, macroname - 宏的简称。 text - 要调用的命令。 以下是命令的选项的说明。 编号 选项 描

  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。

  • 您好,我是Spring batch的新手,我遇到了以下无法解决的异常: 此处为我的代码: 我可以通过添加

  • 当我使用Spring批处理管理运行长时间运行的批处理作业的多个实例时,它会在达到jobLauncher线程池任务执行程序池大小后阻止其他作业运行。但是从cron中提取多个工作似乎效果不错。下面是作业启动器配置。 Spring批处理管理员Restful API是否使用不同于xml配置中指定的作业启动器?

  • 我对Spring批处理跳过逻辑有一些问题。我已经配置了一个作业的步骤来跳过两个异常(SQLIntegrityConstraintViolation异常和乐观锁定失败异常): 但当作业运行时,由于我将其配置为跳过的异常,作业以未知状态完成: 我做错什么了吗?我希望这一步跳过负责抛出其中一个异常的项,并继续处理,以便以完成状态结束。