@GeneratedValue使い方

今回は、GeneratedValueについて調べてみようと思います。

@GeneratedValueとは

プライマリキーカラムにユニークな値を自動で生成,付与する方法を指定するアノテーションです。

@Idを持つエンティティクラスまたはマップドスーパークラスのプライマリキーのフィールドまたはプロパティに適用します。

GenerationType種類

定数説明
GenerationType.AUTOデータベースごとに最も適切な手順を選択して、主キー値を生成する。データベースがOracleの場合は、GenerationType.TABLEと同じ処理をする。
GenerationType.IDENTITYデータベースのID列を使用して主キー値を生成する。データベースがOracleの場合は、GenerationType.SEQUENCEと同じ処理をする。
GenerationType.SEQUENCEデータベースのシーケンスオブジェクトを使用して主キー値を生成する。
GenerationType.TABLE主キー値を保持しておくためのテーブルを使用して、主キー値を生成する。

使い方

@Id
@GeneratedValue
private long id;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private long id;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

参考

http://itdoc.hitachi.co.jp/manuals/link/cosmi_v0870/APR4/EU260072.HTM

http://itref.fc2web.com/java/jpa/annotation.html

コメントを残す