Hitachi

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


8.22.20 @GeneratedValue

〈この項の構成〉

(1) 説明

プライマリキーカラムにユニークな値を自動で生成,付与する方法を指定するアノテーションです。@Idを持つエンティティクラスまたはマップドスーパークラスのプライマリキーのフィールドまたはプロパティに適用します。

プライマリキー値の生成方法には,次の4種類の方法があります。なお,選択する生成方法に基づいて,あらかじめ基礎テーブルやデータベースシーケンスオブジェクトを用意しておく必要があります。それぞれの生成方法の詳細は,strategy属性の説明を参照してください。

適用可能要素は,メソッドとフィールドです。

(2) 属性

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

属性名

任意/必須

属性の説明

strategy

任意

エンティティクラスのプライマリキー値を生成する方法を指定する属性です。

generator

任意

使用する@SequenceGeneratorまたは@TableGeneratorで設定されるname属性を指定する属性です。

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

(a) strategy属性

GenerationType

説明

エンティティクラスのプライマリキー値を生成する方法を指定する属性です。

指定できる値は,次の4種類です。

  • GenerationType.AUTO

    データベースごとに最も適切な手順を選択して,プライマリキー値を生成します。

    データベースがOracleまたはHiRDBの場合は,GenerationType.TABLEと同じ処理をします。

  • GenerationType.IDENTITY

    データベースのidentity列を利用して,プライマリキー値を生成します。

    データベースがOracleの場合は,GenerationType.SEQUENCEと同じ処理をします。

    データベースがHiRDBの場合は,GenerationType.TABLEと同じ処理をします。

  • GenerationType.SEQUENCE

    データベースのシーケンスオブジェクトを使用して,プライマリキー値を生成します。

    データベースがHiRDBの場合は,GenerationType.TABLEと同じ処理をします。

  • GenerationType.TABLE

    プライマリキー値を保持しておくためのテーブルを使用して,プライマリキー値を生成します。

デフォルト値

GenerationType.AUTO

(b) generator属性

String

説明

使用する@SequenceGeneratorまたは@TableGeneratorで設定されるname属性を指定する属性です。

デフォルト値

strategy属性の値によって,次の名前が仮定されます。

  • GenerationType.AUTOの場合

    "SEQ_GEN"

  • GenerationType.SEQUENCEの場合

    "SEQ_GEN_SEQUENCE"

  • GenerationType.TABLEの場合

    "SEQ_GEN_TABLE"