Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


8.22.51 @SequenceGenerator

〈この項の構成〉

(1) 説明

プライマリキーを作成するシーケンスジェネレータの設定を指定するアノテーションです。@SequenceGeneratorを使用する場合,次の設定が必要です。

シーケンスジェネレータは,エンティティクラス,またはプライマリキーのフィールドもしくはプロパティで指定されます。シーケンスジェネレータ名のスコープは永続化ユニットで有効です。

シーケンスオブジェクトを作成する場合,順序の番号間の増分間隔(INCREMENT BY)と生成する順序番号の初期値(START WITH)には,正の整数を指定します。初期値(START WITH)に1を指定した場合,プライマリキーは1から生成されます。負の値を指定した場合の動作は保証しません。

適用可能要素は,クラス,メソッド,およびフィールドです。

(2) 属性

@SequenceGeneratorの属性の一覧を次の表に示します。

属性名

任意/必須

属性の説明

name

必須

@GeneratedValueアノテーションのgenerator属性で指定された名前を指定する属性です。

sequenceName

任意

既存のプライマリキー値または事前に定義したプライマリキー値を取得するためのデータベースシーケンスオブジェクトの名前を指定する属性です。

initialValue

任意

シーケンスオブジェクトが,プライマリキー値生成を開始する初期値を指定する属性です。

なお,この属性は,CJPAプロバイダには対応していません。値を指定した場合は無視されます。

allocationSize

任意

シーケンスからプライマリキー値を割り当てるサイズを指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a) name属性

String

説明

@GeneratedValueアノテーションのgenerator属性で指定された名前を指定する属性です。

指定できる値は,文字列です。

デフォルト値

なし

(b) sequenceName属性

String

説明

既存のプライマリキー値または事前に定義したプライマリキー値を取得するためのデータベースシーケンスオブジェクトの名前を指定する属性です。

指定できるシーケンスオブジェクト名は,データベースの仕様に依存します。

デフォルト値

@GeneratedValueのgenerator属性の指定値

(c) allocationSize属性

int

説明

シーケンスからプライマリキー値を割り当てるサイズを指定する属性です。指定できるシーケンスオブジェクト名は,データベースの仕様に依存します。

指定できるサイズは,int型の1以上の数値です。シーケンスオブジェクトの増分間隔と同じ値を指定します。異なる値を指定した場合の動作は保証しません。

なお,この属性は,実行時に利用する最大値を指定できます。シーケンス番号の管理領域として取得するため,大きな値を指定した場合は,実行時にjava.lang.OutOfMemoryError例外が発生します。

デフォルト値

50