Interstage Application Server J2EE ユーザーズガイド
|
目次
索引

|
26.10.2.3 複数インスタンス検索の記述例(collection インタフェースの場合)
■ 記述する処理概要
- 呼び出すEntity Beanのlookup処理を行い、EJB homeを取得する。
- find<METHOD>メソッドを呼び出し、プライマリキーオブジェクトを取得する。
- ビジネスメソッドを呼び出す。
■ 記述例
(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が返却されます。
- add(Object o)
- addAll(Collection c)
- clear()
- contains(Object o)
- containsAll(Collection c)
- remove(Object o)
- removeAll(Collection c)
- retainAll(Collection c)
- size()
- toArray()
- toArray(Object[] a)
- 同一Collectionに対してiterator()メソッドを2回以上実行する
また、sizeメソッドについては以下の場合には使用することができません。使用した場合にはjava.lang.UnsupportedOperationExceptionが返却されます。
- インスタンス管理モードにSequentialを指定している場合
- トランザクション属性にMandatoryを指定している場合
- 高速呼び出し機能Lightモードを使用している場合
- INTERSTAGE V3の処理モードを指定している場合
- INTERSTAGE V3以前で配備したEJBアプリケーションを使用している場合
All Rights Reserved, Copyright (C) 富士通株式会社 2006