Entity Beanのインスタンスを更新するときのEntity Beanを呼び出すアプリケーション、コンテナおよびEnterprise Beanクラス間の処理の流れとEntity Beanを呼び出すアプリケーションの記述例について説明します。
処理の流れ
プライマリキーでEntity Beanのインスタンスを検索しデータを更新するときの処理の流れを示します。
以下の例はBMPのEntity Beanです。CMPはデータベースアクセス処理をコンテナが行いますが、処理の流れは同じです。

呼出し元のアプリケーションから、findByPrimarykeyメソッドを呼び出します。
findByPrimarykeyメソッドが発行されると、コンテナからEnterprise BeanクラスのejbFindByPrimaryKeyメソッドが呼び出されて、ejbFindByPrimaryKeyに記述したSELECT文を実行し、プライマリキーオブジェクトを作成、返却します。
呼出し元のアプリケーションから、ビジネスメソッド(setNameメソッド)を呼び出します。
ビジネスメソッドが呼び出されると、コンテナが以下の処理を行います。
ビジネスメソッドには、永続化フィールドに更新データを設定する処理を記述します。
Enterprise BeanクラスのejbActivateメソッドを呼び出す。
Enterprise BeanクラスのejbLoadメソッドを呼び出す。ejbLoadメソッドに記述したSELECT文が実行され、永続化フィールドにデータを設定する。
Enterprise Beanクラスのビジネスメソッドを呼び出す。
更新処理の記述例
呼び出すEntity Beanのlookup処理を行い、EJB homeを取得する。
findByPrimaryKeyメソッドを呼び出し、プライマリキーオブジェクトを取得する。
ビジネスメソッドを呼び出す。
       (lookup処理でEJB homeの取得)
                                   :
        EmployeeEntityRemote etyRemote = null;
        EmployeeEntityPrimaryKey pk = new EmployeeEntityPrimaryKey();
        pk.ID = empEV.getId();
        try {
            // findByPrimaryKeyの呼出し
            etyRemote = etyHome.findByPrimaryKey(pk);
        } catch ( FinderException ex ) {
            throw new UserException( ex.getMessage() );
        } catch ( RemoteException ex ) {
            throw new EJBException( ex.getMessage() );
        }
        // ビジネスメソッド/抽象アクセッサメソッド(setName,setDept,setAge)の呼出し
        etyRemote.setName( empEV.getName() );
        etyRemote.setDept( empEV.getDept() );
        etyRemote.setAge( empEV.getAge() );
                                   :