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

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

2.6.20 @GeneratedValue

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

(1) 説明

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

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

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

(2) 属性

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

属性名 任意/必須 属性の説明
strategy 任意 エンティティクラスのプライマリキー値を生成する方法を指定する属性です。
generator 任意 使用する@SequenceGeneratorまたは@TableGeneratorで設定されるname属性を指定する属性です。

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

(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"