ejbFind<METHOD>メソッドは、プライマリキーを返却するメソッドです。複数のプライマリキーを返却できます。
Entity Beanを呼び出すEJBアプリケーションがfind<METHOD>メソッドを呼び出すと、コンテナはfind<METHOD>メソッドに対応するejbFind<METHOD>メソッドを呼び出します。
記述する処理の概要
ejbFind<METHOD>メソッドには、以下の処理を記述します。引数には、任意の検索キーを指定します。
引数を検索キーにしてプライマリキーを検索(SELECT)する処理
プライマリキーオブジェクトを作成する処理
また、複数のプライマリキーを返却するメソッドで検索結果が0件の場合、要素が0個のEnumerationやCollectionを返却するようにしてください。
ejbFind<METHOD>メソッドの規約
ejbFind<METHOD>メソッドは以下の規約を満たしていなければなりません。
メソッド名はejbFindプレフィックスで始まらなければなりません。
メソッドはpublicとして定義されていなければなりません。
返却値はEnterprise Beanのプライマリキータイプかまたはプライマリキータイプのオブジェクトのコレクションでなければなりません。
メソッドの引数は、RMI over IIOPの規約に従わなくてはなりません。
throws句には以下の例外を定義できます。
任意のEJBアプリケーション固有の例外
javax.ejb.EJBException
javax.ejb.FinderException
記述例
public Enumeration ejbFindSampleBigCode(Integer bigcode)
throws javax.ejb.FinderException, javax.ejb.EJBException
{
Connection connection = null;
PreparedStatement psSelect = null;
ResultSet rs = null;
int rows = 0;
SampleBeanPrimaryKey pk = null;
Vector v = new Vector();
try
{
// プライマリキーの検索
connection = dataSource.getConnection();
psSelect = connection.prepareStatement("SELECT ID FROM SAMPLESCM.SAMPLETBL WHERE ID > ?");
psSelect.setObject(1,bigcode);
rs = psSelect.executeQuery();
while(rs.next())
{
rows++;
// プライマリキーオブジェクトの作成
pk = new SampleBeanPrimaryKey();
pk.code = new Integer(rs.getInt(1));
v.addElement(pk);
}
}
catch(SQLException e)
{
throw new EJBException(e.getMessage());
}
finally
{
try
{
if (rs != null)
rs.close();
if (psSelect != null)
psSelect.close();
if (connection != null)
connection.close();
}
catch(Exception e) {}
}
return v.elements();
}