Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第3部 EJB編> 第14章 EJBアプリケーションの呼出し方法> 14.2 Entity Beanの呼出し方法> 14.2.2 検索処理の記述

14.2.2.3 複数インスタンス検索の記述例(collection インタフェースの場合)

■ 記述する処理概要

  1. 呼び出すEntity Beanのlookup処理を行い、EJB homeを取得する。
  2. find<METHOD>メソッドを呼び出し、プライマリキーオブジェクトを取得する。
  3. ビジネスメソッドを呼び出す。

■ 記述例

       (lookup処理でEJB homeの取得)
    Collection enum = null;
    try {
        // find<METHOD>の呼出し
        enum = etyHome.findByKey2(empEV);
    } catch ( FinderException ex ) {
        throw new UserException( ex.getMessage() );
    } catch ( RemoteException ex ) {
        throw new EJBException( ex.getMessage() );
    }

    if ( enum == null ) {
        examDebug( "## EmployeeCBM : empSearchN2() record not found" );
        return null;
    }

    int count = 0;
    Vector vec = new Vector();
    EmployeeEntityRemote etyRemote = null;
    Iterator iterator = enum.iterator();

    java.lang.Object obj = null;
    while( iterator.hasNext() ) {
        EmployeeEV view = new EmployeeEV();
        obj = iterator.next();
        etyRemote =
        (EmployeeEntityRemote)javax.rmi.PortableRemoteObject.narrow(obj,EmployeeEntityRemote.class
        );
        // ビジネスメソッド/抽象アクセッサメソッド(getId,getName,getDept,getAge)の呼出し
        view.setId(etyRemote.getId());
        view.setName(etyRemote.getName());
        view.setDept(etyRemote.getDept());
        view.setAge(etyRemote.getAge());
        count++;
        vec.addElement( view );
    }

 以下の条件に当てはまらない場合、finderメソッドから返却されるCollectionインタフェースで、以下のメソッドは使用できません。使用した場合には、java.lang.UnsupportedOperationExceptionが返却されます。

■CMP1.1およびBMPの場合
 IJServerタイプ別に以下のように異なります。

 上記の条件を満たさない場合、使用範囲はV6.0以前の範囲となります。CMP2.0では、無条件に使用できます。

 トランザクション属性の設定について詳細は、“トランザクション管理種別とトランザクション属性”を参照してください。

 また、sizeメソッドについては以下の場合には使用できません。使用した場合にはjava.lang.UnsupportedOperationExceptionが返却されます。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005