今回は、JPAの@Columnアノテーションについてまとめていきたいと思います。
@Column
エンティティの各フィールドにマッピングされる物理テーブルのカラム名を指定します。
属性
| 属性名 | 任意/必須 | 属性の説明 |
|---|---|---|
| name | 任意 | カラム名を指定する属性です。 |
| unique | 任意 | プロパティがユニークキーであるかどうかを指定する属性です。 なお,この属性は,Cosminexus JPAプロバイダには対応していません。 |
| nullable | 任意 | データベースのカラムにnull値を指定できるかどうかを指定する属性です。 なお,この属性は,Cosminexus JPAプロバイダには対応していません。 |
| insertable | 任意 | @Columnで指定したカラムをSQLのINSERT文に含むかどうかを指定する属性です。 |
| updatable | 任意 | @Columnで指定したカラムをSQLのUPDATE文に含むかどうかを指定する属性です。 |
| columnDefinition | 任意 | CREATE文を出力するとき,カラムに付加する制約をDDLで記載する属性です。 なお,この属性は,Cosminexus JPAプロバイダには対応していません。 |
| table | 任意 | カラムを含むテーブル名を指定する属性です。 |
| length | 任意 | カラムの長さを指定する属性です。 なお,この属性は,Cosminexus JPAプロバイダには対応していません。 |
| precision | 任意 | カラムの精度を指定する属性です。カラムが数値型の場合に指定します。 なお,この属性は,Cosminexus JPAプロバイダには対応していません。 |
| scale | 任意 | カラムのスケールを指定する属性です。カラムが数値型の場合に指定します。 なお,この属性は,Cosminexus JPAプロバイダには対応していません。 |
サンプル
@Column(length = 50, nullable = false)
private String title;
@Column(columnDefinition = "TEXT", nullable = false)
private String content;
- title:長さを50にしてnull許可をしないです。
- content:データタイプをテキストにしてnull許可をしないです。
