Cosminexus アプリケーションサーバ V8 リファレンス API編

[目次][索引][前へ][次へ]

2.6.56 @SequenceGenerator

<この項の構成>
(1) 説明
(2) 属性

(1) 説明

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

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

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

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

(2) 属性

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

属性名 任意/必須 属性の説明
name 必須 @GeneratedValueアノテーションのgenerator属性で指定された名前を指定する属性です。
sequenceName 任意 既存のプライマリキー値または事前に定義したプライマリキー値を取得するためのデータベースシーケンスオブジェクトの名前を指定する属性です。
initialValue 任意 シーケンスオブジェクトが,プライマリキー値生成を開始する初期値を指定する属性です。
なお,この属性は,Cosminexus JPAプロバイダには対応していません。値を指定した場合は無視されます。
allocationSize 任意 シーケンスからプライマリキー値を割り当てるサイズを指定する属性です。

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

(a) name属性

String

説明
@GeneratedValueアノテーションのgenerator属性で指定された名前を指定する属性です。
指定できる値は,文字列です。

デフォルト値
なし
(b) sequenceName属性

String

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

デフォルト値
@GeneratedValueのgenerator属性の指定値
(c) allocationSize属性

int

説明
シーケンスからプライマリキー値を割り当てるサイズを指定する属性です。指定できるシーケンスオブジェクト名は,データベースの仕様に依存します。
指定できるサイズは,int型の1以上の数値です。シーケンスオブジェクトの増分間隔と同じ値を指定します。異なる値を指定した場合の動作は保証しません。
なお,この属性は,実行時に利用する最大値を指定できます。シーケンス番号の管理領域として取得するため,大きな値を指定した場合は,実行時にjava.lang.OutOfMemoryError例外が発生します。

デフォルト値
50