2017-07-12 30 views
1

これらのテーブルの名前を変更することはできますか?Spring Batchメタテーブルをカスタマイズできますか?

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] 
+0

https://stackoverflow.com/questions/37436658/spring-batch-table-prefix-when-using-java-config – StanislavL

+1

@StanislavL:プレフィックスはテーブル名プレフィックスのみを変更しますが、プレフィックスプロパティは接尾辞を保持していると思います'GFA.BATCH_JOB_INSTANCE'なので、そのプレフィックスに' JOB_INSTANCE'などが追加されます。 OPが探しているものは、これらの接尾辞が付いていない完全なテーブル名の変更です。私は探検するが、私が知る限り、それは不可能だろう。 –

+0

@StanislavL質問をする前に確認しました。Sabir Khanはプレフィックス部分だけを変更できると述べていますが、サフィックスの変更は知られていません。また、Springバッチ3.0.0のドキュメントもチェックしましたが、ソースコードとスキーマファイルを変更して、私のユースケースのためのSpringバッチフレームワークをカスタムビルドする必要がありますか? – RawAliasCoder

答えて

1

いいえ、バッチバッチメタデータテーブルの名前を完全に変更することはできません。プレフィックス部分のみ変更できます。

私の答えは、私のような春のバッチAPIにいくつかのクラスのコードを見ているという事実に基づいている - org.springframework.batch.core.repository.dao.JdbcExecutionContextDao & org.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_INSTANCE & JOB_EXECUTION_CONTEXTなどのサフィックス部分は変更できないようにハードコードされています。

関連する問題