エンティティのメソッド

ActiveObjectsではエンティティの実装を書く必要はありません。
EntityManagerに対しfind()メソッド等を呼び出すことで、エンティティの実装を取得することができますが、
この実装はActiveObjectsが動的に作成してくれるものです。


今回は、エンティティに対して呼び出せるメソッドについて整理しました。

エンティティのメソッドを実装インタフェース・継承クラスなどで整理

エンティティに対しメソッド呼び出しが行われると、どのような処理を行うかの判定が行われます。
以下に、判定内容および、対応する処理をまとめました。
なお、実際のメソッドの判定は、判定順に行われます。

RawEntityのメソッド

いつでも使用できます。

判定順 メソッド名 概要
1 getEntityType エンティティの型を取得する。
4 save エンティティを保存する。
6 getEntityManager エンティティマネージャを取得する。
7 addPropertyChangeListener プロパティ変更リスナを追加する。
8 removePropertyChangeListener プロパティ変更リスナを削除する。
Objectのメソッド

いつでも使用できます。

判定順 メソッド名 概要
9 hashCode キーと値に基づくハッシュ値を取得する。
10 equals テーブルと主キーの値が等しいことを確認する。
11 toString "テーブル名 {主キーのフィールド名 : 主キーの値}"を返す。
エンティティインタフェースのメソッド

エンティティインタフェースに宣言すると使用できます。

判定順位 メソッド名 または メソッドの条件 概要
3 主キーのアクセッサのメソッド名 主キーを取得する。
5 getTableName テーブル名を取得する。
13 Accessorアノテーションを持つ エンティティの値を取得する。
14 Mutatorアノテーションを持つ エンティティの値を設定する。
15 OneToOneアノテーションを持ち、戻り値の型がエンティティ 1対1の対応先のエンティティを取得する。
16 OneToManyアノテーションをもち、戻り値の型がエンティティの配列 1対多の対応先のエンティティ(複数)を取得する。
17 ManyToManyアノテーションをもち、戻り値の型がエンティティの配列 多対多の対応先のエンティティ(複数)を取得する。
18 アクセッサである(メソッド名の先頭がis、または、get) エンティティの値を取得する。
19 ミューテータである(メソッド名の先頭がset) エンティティの値を設定する。
非nullチェック

判定の途中で、引数の非nullチェックが行われます。

判定順 概要
12 NotNulアノテーションを持つ場合、引数の非nullチェックを行う。引数がnullの場合はIllegalArgumentExceptionが発生します。
明示的な実装の呼び出し

以下を満たす場合、明示的な実装クラスのメソッドが呼び出されます。

  • @Implementationアノテーションで実装クラスを指定している。
  • 実装クラスでメソッドが実装されている。
判定順 メソッドの条件 概要
2 クラスが明示的な実装メソッドを持つ 実装メソッドに移譲する。

上記と同じものを判定順に並べたもの

判定順 メソッド名 または メソッドの条件 概要
1 getEntityType エンティティの型を取得する。
2 Implementationアノテーションの値の表わすクラスのもつメソッド名 Implementationアノテーションの値の表わすクラスに移譲する。
3 主キーのアクセッサのメソッド名 主キーを取得する。
4 save エンティティを保存する。
5 getTableName テーブル名を取得する。
6 getEntityManager エンティティマネージャを取得する。
7 addPropertyChangeListener プロパティ変更リスナを追加する。
8 removePropertyChangeListener プロパティ変更リスナを削除する。
9 hashCode キーと値に基づくハッシュ値を取得する。
10 equals テーブルと主キーの値が等しいことを確認する。
11 toString "テーブル名 {主キーのフィールド名 : 主キーの値}"を返す。
12 - NotNulアノテーションを持つ場合、引数の非nullチェックを行う。
13 Accessorアノテーションを持つ エンティティの値を取得する。
14 Mutatorアノテーションを持つ エンティティの値を設定する。
15 OneToOneアノテーションを持ち、戻り値の型がエンティティ 1対1の対応先のエンティティを取得する。
16 OneToManyアノテーションをもち、戻り値の型がエンティティの配列 1対多の対応先のエンティティ(複数)を取得する。
17 ManyToManyアノテーションをもち、戻り値の型がエンティティの配列 多対多の対応先のエンティティ(複数)を取得する。
18 アクセッサである(メソッド名の先頭がis、または、get) エンティティの値を取得する。
19 ミューテータである(メソッド名の先頭がset) エンティティの値を設定する。