30.6.8. BMP カスタムファインダー

JBoss は bean 管理による永続カスタムファインダーもサポートします。カスタムの finder メソッドがホーム、またはローカルのホームインターフェースで宣言した finder と一致する場合、JBoss は ejb-jar.xml または jbosscmp-jdbc.xml ファイルで宣言したその他の実装に優先して、このカスタムファインダーを呼び出します。以下のシンプルな例に、プライマリキーの集まりによるエンティティを示します。
public abstract class GangsterBean
    implements EntityBean 
{
    public Collection ejbFindByPrimaryKeys(Collection keys)
    {
        return keys;
    }
}
データベースに接続せずにプライマリキーを実際のエンティティオブジェクトに変換できるため、非常に便利な finder です。問題なのは、データベースに存在しないプライマリキーでエンティティオブジェクトを作成できるという点です。無効なエンティティでメソッドが呼び出された場合、NoSuchEntityException が送出されます。生成されたエンティティ bean は finder を実装している EJB 仕様に反するのも問題点の一つです。JBoss EJB verifier は StrictVerifier 属性が false に設定されない限り、このようなエンティティをデプロイできません。