Spring Batch JobRepository使用時のシーケンスエラー

2012年10月23日 Posted by PURGE

MySQL では動作するのだが、Oracleに移行した途端にエラー。
シーケンスが無いとのこと。

どうやら、MySQLの場合は、下記をテーブルとして実装しても動作するのだが、Oracleだとシーケンスとして作成する必要があるようだ。

MySQLだと下記でも動作する。

CREATE TABLE BATCH_STEP_EXECUTION_SEQ (
	ID BIGINT NOT NULL
);

CREATE TABLE BATCH_JOB_EXECUTION_SEQ (
	ID BIGINT NOT NULL
);

CREATE TABLE BATCH_JOB_SEQ (
	ID BIGINT NOT NULL
);

INSERT INTO BATCH_STEP_EXECUTION_SEQ VALUES(0);
INSERT INTO BATCH_JOB_EXECUTION_SEQ VALUES(0);
INSERT INTO BATCH_JOB_SEQ VALUES(0);

Oracleでは、Tableではなく、Sequenceを定義。

CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ MAXVALUE 9223372036854775807 CYCLE;
CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ MAXVALUE 9223372036854775807 CYCLE;
CREATE SEQUENCE BATCH_JOB_SEQ MAXVALUE 9223372036854775807 CYCLE;

こちらを参考にした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です