Entity Beanのインスタンスを削除するときのEntity Beanを呼び出すアプリケーション、コンテナおよびEnterprise Beanクラス間の処理の流れとEntity Beanを呼び出すアプリケーションの記述例について説明します。
処理の流れ
Entity Beanのインスタンスを削除するときの処理の流れを示します。
以下の例はBMPのEntity Beanです。CMPはデータベースアクセス処理をコンテナが行いますが、処理の流れは同じです。
呼出し元のアプリケーションから、findByPrimarykeyメソッドを呼び出します。
findByPrimarykeyメソッドが発行されると、コンテナからEnterprise BeanクラスのejbFindByPrimaryKeyメソッドが呼び出され、ejbFindByPrimaryKeyに記述したSELECT文を実行し、プライマリキーオブジェクトを作成、返却します。
呼出し元のアプリケーションから、removeメソッドを呼び出します。
removeメソッドが呼び出されると、コンテナが以下の処理を行います。
Enterprise BeanクラスのejbActivateメソッドを呼び出す。
Enterprise BeanクラスのejbLoadメソッドを呼び出す。ejbLoadメソッドに記述したSELECT文が実行され、永続化フィールドにデータを設定する。
Enterprise BeanクラスのejbRemoveメソッドを呼び出す。ejbRemoveメソッドに記述したDELETE文が実行され、データを削除する。
削除処理の記述例
呼び出すEntity Beanのlookup処理を行い、EJB homeを取得する。
findByPrimaryKeyメソッドを呼び出し、プライマリキーオブジェクトを取得する。
removeメソッドを呼び出す。
(lookup処理でEJB homeの取得) : EmployeeEntityRemote etyRemote = null; EmployeeEntityPrimaryKey pk = new EmployeeEntityPrimaryKey(); pk.ID = empEV.getId(); try { etyRemote = etyHome.findByPrimaryKey(pk); } catch ( FinderException ex ) { throw new UserException( ex.getMessage() ); } catch ( RemoteException ex ) { throw new EJBException( ex.getMessage() ); } try { etyRemote.remove(); } catch ( RemoveException ex ) { throw new UserException( ex.getMessage() ); } catch ( RemoteException ex ) { throw new EJBException( ex.getMessage() ); } :