今回は、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
