org.seasar.doma
注釈型 Entity


@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface Entity

エンティティクラスを示します。エンティティクラスのインスタンスは、テーブルもしくは結果セットのレコードを表現します。

ミュータブルなエンティティクラスは、 次の制約を満たす必要があります。

例:
 @Entity
 public class Employee {
 
     @Id
     @Column(name = "ID")
     Integer id;
 
     @Column(name = "EMPLOYEE_NAME")
     String employeeName;
 
     @Version
     @Column(name = "VERSION")
     int version;
     
     ...
 }
 

イミュータブルなエンティティクラスは、 次の制約を満たす必要があります。

例:
 @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;
     }
     ...
 }
 

注釈されたインタフェースの実装はスレッドセーフであることを要求されません。

作成者:
taedium
関連項目:
Table, Column, Id, Transient, Version, OriginalStates

任意要素の概要
 boolean immutable
          イミュータブルかどうかです。
 Class<? extends EntityListener> listener
          リスナーです。
 NamingType naming
          ネーミング規約です。
 

listener

public abstract Class<? extends EntityListener> listener
リスナーです。

この要素に値を指定しない場合、エンティティクラスが他のエンティティクラスを継承しているかどうかで採用する設定が変わります。

リスナーは、エンティティクラスごとに1つだけインスタンス化されます。

デフォルト:
org.seasar.doma.jdbc.entity.NullEntityListener.class

naming

public abstract NamingType naming
ネーミング規約です。

この要素に値を指定しない場合、エンティティクラスが他のエンティティクラスを継承しているかどうかで採用する設定が変わります。

デフォルト:
org.seasar.doma.jdbc.entity.NamingType.NONE

immutable

public abstract boolean immutable
イミュータブルかどうかです。

この機能はEXPERIMETALな機能です。破壊的な仕様変更が行われる可能性があります。

この要素に値を指定しない場合、エンティティクラスが他のエンティティクラスを継承しているかどうかで採用する設定が変わります。

ただし、エンティティクラスの継承階層で truefalse の混在はできません。

戻り値:
イミュータブルの場合 true
導入されたバージョン:
1.34.0
デフォルト:
false


Copyright © 2009-2014 The Seasar Foundation. All Rights Reserved.