|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 必須 | オプション | 詳細: 要素 | |||||||||
@Target(value=TYPE) @Retention(value=RUNTIME) public @interface Entity
エンティティクラスを示します。エンティティクラスのインスタンスは、テーブルもしくは結果セットのレコードを表現します。
ミュータブルなエンティティクラスは、 次の制約を満たす必要があります。
private なコンストラクタを持つ。
@Entity
public class Employee {
@Id
@Column(name = "ID")
Integer id;
@Column(name = "EMPLOYEE_NAME")
String employeeName;
@Version
@Column(name = "VERSION")
int version;
...
}
イミュータブルなエンティティクラスは、 次の制約を満たす必要があります。
private なコンストラクタを持ち、コンストラクタのパラメータの型と名前は永続フィールドに対応する。
@Entity(immutable = true)
public class Employee {
@Id
@Column(name = "ID")
final Integer id;
@Column(name = "EMPLOYEE_NAME")
final String employeeName;
@Version
@Column(name = "VERSION")
final int version;
public Employee(Integer id, String employeeName, int version) {
this.id = id;
this.employeeName = employeeName;
this.version = version;
}
...
}
注釈されたインタフェースの実装はスレッドセーフであることを要求されません。
Table,
Column,
Id,
Transient,
Version,
OriginalStates| 任意要素の概要 | |
|---|---|
boolean |
immutable
イミュータブルかどうかです。 |
Class<? extends EntityListener> |
listener
リスナーです。 |
NamingType |
naming
ネーミング規約です。 |
public abstract Class<? extends EntityListener> listener
この要素に値を指定しない場合、エンティティクラスが他のエンティティクラスを継承しているかどうかで採用する設定が変わります。
リスナーは、エンティティクラスごとに1つだけインスタンス化されます。
public abstract NamingType naming
この要素に値を指定しない場合、エンティティクラスが他のエンティティクラスを継承しているかどうかで採用する設定が変わります。
public abstract boolean immutable
この機能はEXPERIMETALな機能です。破壊的な仕様変更が行われる可能性があります。
この要素に値を指定しない場合、エンティティクラスが他のエンティティクラスを継承しているかどうかで採用する設定が変わります。
ただし、エンティティクラスの継承階層で true と false の混在はできません。
true
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 必須 | オプション | 詳細: 要素 | |||||||||