Hitachi

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


8.22.55 @TableGenerator

〈この項の構成〉

(1) 説明

プライマリキーを作成するジェネレータの設定を指定するアノテーションです。

@TableGeneratorを使用する場合,次の設定が必要です。

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

エンティティはプライマリキー値を生成するために,ジェネレータテーブルの行を使用します。

シーケンスを管理するテーブルを作成する場合,初期値には正の整数を指定します。初期値に0を指定した場合,プライマリキーは1から生成されます。

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

(2) 属性

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

属性名

任意/必須

属性の説明

name

必須

プライマリキー値のためのジェネレータ名を指定する属性です。

table

任意

生成されるプライマリキー値を確保するテーブルの名前を指定する属性です。

catalog

任意

生成されるプライマリキー値を確保するテーブルのカタログ名を指定する属性です。

なお,この属性は,CJPAプロバイダには対応していません。

schema

任意

生成されるプライマリキー値を確保するテーブルのスキーマ名を指定する属性です。

pkColumnName

任意

生成されるプライマリキー値を確保するテーブルのプライマリキーカラム名を指定する属性です。

valueColumnName

任意

生成された最終値を確保するカラム名を指定する属性です。

pkColumnValue

任意

生成されるプライマリキー値を確保するテーブルのプライマリキー値を指定する属性です。

initialValue

任意

生成された最新の値を確保するカラムを初期化するために使う値を指定する属性です。

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

allocationSize

任意

ジェネレータからプライマリキー値を割り当てるサイズを指定する属性です。

uniqueConstraints

任意

生成されるプライマリキー値を確保するテーブル上でのユニークキー制約を指定する属性です。

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

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

(a) name属性

String

説明

プライマリキー値のためのジェネレータ名を指定する属性です。

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

デフォルト値

なし

(b) table属性

String

説明

生成されるプライマリキー値を確保するテーブルの名前を指定する属性です。

指定できるテーブル名は,データベースの仕様に依存します。

デフォルト値

"SEQUENCE"

(c) schema属性

String

説明

生成されるプライマリキー値を確保するテーブルのスキーマ名を指定する属性です。

指定できるスキーマ名は,データベースの仕様に依存します。

デフォルト値

使用するデータベースのデフォルトのスキーマ名

(d) pkColumnName属性

String

説明

生成されるプライマリキー値を確保するテーブルのプライマリキーカラム名を指定する属性です。

指定できるカラム名は,データベースの仕様に依存します。

デフォルト値

"SEQ_NAME"

(e) valueColumnName属性

String

説明

生成された最終値を確保するカラム名を指定する属性です。

指定できるカラム名は,データベースの仕様に依存します。

デフォルト値

"SEQ_COUNT"

(f) pkColumnValue属性

String

説明

生成されるプライマリキー値を確保するテーブルのプライマリキー値を指定する属性です。

指定できる値は,生成されたプライマリキーのカラムの型に依存します。

デフォルト値

name属性で指定された文字列

(g) allocationSize属性

int

説明

ジェネレータからプライマリキー値を割り当てるサイズを指定する属性です。

指定できる値は,int型の1以上の数値です。

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

デフォルト値

50