2.6.60 @TableGenerator

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

(1) 説明

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

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

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

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

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

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

(2) 属性

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

属性名任意/必須属性の説明
name必須プライマリキー値のためのジェネレータ名を指定する属性です。
table任意生成されるプライマリキー値を確保するテーブルの名前を指定する属性です。
catalog任意生成されるプライマリキー値を確保するテーブルのカタログ名を指定する属性です。
なお,この属性は,Cosminexus JPAプロバイダには対応していません。
schema任意生成されるプライマリキー値を確保するテーブルのスキーマ名を指定する属性です。
pkColumnName任意生成されるプライマリキー値を確保するテーブルのプライマリキーカラム名を指定する属性です。
valueColumnName任意生成された最終値を確保するカラム名を指定する属性です。
pkColumnValue任意生成されるプライマリキー値を確保するテーブルのプライマリキー値を指定する属性です。
initialValue任意生成された最新の値を確保するカラムを初期化するために使う値を指定する属性です。
なお,この属性は,Cosminexus JPAプロバイダには対応していません。値を指定した場合は無視されます。
allocationSize任意ジェネレータからプライマリキー値を割り当てるサイズを指定する属性です。
uniqueConstraints任意生成されるプライマリキー値を確保するテーブル上でのユニークキー制約を指定する属性です。
なお,この属性は,Cosminexus JPAプロバイダには対応していません。値を指定した場合は無視されます。

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

(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