LocalHomeインタフェースには、Entity Beanの生成および検索を行うためのメソッドを定義します。
LocalHomeインタフェースは、Java VM内で呼ばれるインタフェースであるためRMIの形で記述する必要はありません。
また、EJB2.0規約以降に準拠したEJBアプリケーションでは、BMPとCMP2.0においてejbHomeメソッドと呼ばれるビジネスメソッドをLocalHomeインタフェースに記述できます。LocalHomeインタフェースには、“create”、“find”、“remove”以外で始まる任意の名前を記述できます。
例えば、データベースのレコード件数を取得するビジネスメソッドなどが記述できるため、データベース操作をより自由にできます。
以下に、LocalHomeインタフェースの記述形式を示します。
記述形式
public interface LocalHomeインタフェース名 extends javax.ejb.EJBLocalHome { public Localインタフェースタイプ create(任意の引数) throws javax.ejb.CreateException; public Localインタフェースタイプ create<METHOD>(任意の引数) throws javax.ejb.CreateException; public Localインタフェースタイプ findByPrimaryKey(primary key) throws javax.ejb.FinderException; public Localインタフェースタイプ find<METHOD>(任意の引数) throws javax.ejb.FinderException; public java.util.Enumeration find<METHOD>(任意の引数) throws javax.ejb.FinderException; public java.util.Collection find<METHOD>(任意の引数) throws javax.ejb.FinderException; public 返却値 ビジネスメソッド(任意の引数) ; }
規約
LocalHomeインタフェースは以下の規約を満たしていなければなりません。
インタフェースはjavax.ejb.EJBLocalHomeインタフェースを継承しなければなりません。
LocalHomeインタフェースには、以下のメソッドを定義します。
0個以上のcreateメソッド
1個以上のfinderメソッド
0個以上のejbHomeメソッド
createメソッドの規約
createメソッドは、インスタンスを生成するためのメソッドです。createメソッドが呼び出されることによって、INSERT文が実行され、データベースに新しい行が追加されます。
なお、EJB2.0規約以降に準拠したEJBアプリケーションでは、BMPだけcreateで始まる任意の名前を記述できます。これにより、createメソッド名に意味のある名前を記述できるため、EJBアプリケーションをわかりやすく作成できます。
createメソッドは以下の規約を満たしていなければなりません。
LocalHomeインタフェースは、0個以上のcreateメソッドを定義します。
各createメソッドはcreateという名前で始まらなければなりません。
各createメソッドは、引数のタイプと数が、Enterprise Beanクラスに定義された ejbCreateメソッドの1つに一致しなくてはなりません。
throws句には、以下の例外をすべて定義する必要があります。
一致するEnterprise BeanクラスのejbCreateメソッドに定義されたすべての例外
javax.ejb.CreateException
finderメソッドの規約
finderメソッドは、特定のインスタンス、またはインスタンスの集合を検索するためのメソッドです。finderメソッドに指定した引数を検索条件にしたSELECT文が実行されます。
finderメソッドは以下の規約を満たしていなければなりません。
Homeインタフェースに、以下の条件を満たすfindByPrimaryKeyメソッドを定義しなければなりません。
findByPrimaryKeyという名前であること
引数は1つでプライマリキータイプであること
返却値はEnterprise BeanのLocalインタフェースタイプであること
各finderメソッドは、find<METHOD>という名前(例:findLargeAccount)でなければなりません。
BMPの場合、各finderメソッドは、引数のタイプと数が、Enterprise Beanクラスに定義されたejbFind<METHOD>の1つに一致しなくてはなりません。
返却値のタイプは、以下のどれかでなければなりません。
Enterprise BeanのLocalインタフェースタイプ
java.util.Enumerationインタフェース(BMP、CMP1.1のみ)
java.util.Collectionインタフェース
throws句には、以下の例外をすべて定義してください。
一致するEnterprise BeanクラスのejbFind<METHOD>メソッドに定義されたすべての例外
javax.ejb.FinderException