【问题标题】:Can we customize Spring Batch meta tables?我们可以自定义 Spring Batch 元表吗?
【发布时间】:2017-07-12 20:10:44
【问题描述】:

我们可以更改这些表的名称吗?

  Default Table Name->Customize Name
 -----------------------------------------
• BATCH_JOB_INSTANCE->JobInstanceDescription
• BATCH_JOB_PARAMS-> JobExecutionParameters
• BATCH_JOB_EXECUTION[Customized Name Will Be Provided In Similar Fashion]
• BATCH_JOB_EXECUTION_CONTEXT->[Customized Name Will Be Provided In Similar Fashion]
• BATCH_STEP_EXECUTION->[Customized Name Will Be Provided In Similar Fashion]
• BATCH_STEP_EXECUTION_CONTEXT->[Customized Name Will Be Provided In Similar Fashion]

【问题讨论】:

  • @StanislavL :我猜,前缀只会更改表名前缀,但前缀属性保留后缀部分太像 - GFA.BATCH_JOB_INSTANCE 所以JOB_INSTANCE 等将附加到该前缀。 OP 正在寻找的是没有这些后缀的全表名称更改。我会探索,但据我所知,这是不可能的。
  • @StanislavL 在提出问题之前我已经检查过了。正如 Sabir Khan 提到的,只有前缀部分可以更改,但更改后缀是未知的。我还检查了 Spring batch 3.0.0 的文档,但似乎那部分没有记录。可能我必须通过更改源代码和模式文件来为我的用例自定义构建 Spring 批处理框架。

标签: spring spring-batch


【解决方案1】:

不,不可能完全重命名 Spring Batch 元数据表。只能更改前缀部分。

我的回答是基于我查看了 Spring Batch API 中几个类的代码,例如 - org.springframework.batch.core.repository.dao.JdbcExecutionContextDaoorg.springframework.batch.core.repository.dao.JdbcJobInstanceDao

这些类使用硬编码查询,例如 -

private static final String CREATE_JOB_INSTANCE = "INSERT into %PREFIX%JOB_INSTANCE(JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION)" + " values (?, ?, ?, ?)";

&

private static final String FIND_JOB_EXECUTION_CONTEXT = "SELECT SHORT_CONTEXT, SERIALIZED_CONTEXT " + "FROM %PREFIX%JOB_EXECUTION_CONTEXT WHERE JOB_EXECUTION_ID = ?"; 等等等等

所以像JOB_INSTANCEJOB_EXECUTION_CONTEXT 这样的后缀部分是硬编码的,因此无法更改。

【讨论】:

  • 我公司的政策是,表的名称长度不能超过 30,所以如果我们可以更改元数据表的名称会很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多