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

|
9.2.3 Entity Beanの形態
Entity BeanにはBMP(Bean-managed persistence)とCMP (Container-managed persistence)の2種類が存在します。
それぞれの特徴を以下に示します。
- BMP (Bean-managed persistence)
EJBアプリケーション内に適切なデータベース操作文を発行する処理を記述することにより、EJBアプリケーション自身がデータの永続化を行います。
状況に応じたきめ細かいデータベース管理ができます。
- CMP (Container-managed persistence)
コンテナがデータの永続化を行います。このため、EJBアプリケーション自身にデータベース操作文を記述することなく、データベースにアクセスできます。
EJBアプリケーションにデータベース操作文を記述する必要がないため、ポータビリティ性の高いアプリケーションが容易に開発できます。
CMP2.0ではCMP1.1の機能に加え、Entity Beanが別のEntity Beanとの関係を保持する機能を備えたことにより、CMP1.1と比べてはるかに複雑化したデータをEntity Beanに関連づけることができます。
また、CMP2.0を使用することでデータベースのテーブル間のマッピングや、データベースへのSQLクエリなどに対する可搬性が向上します。
以下に、口座引き落とし処理を例にして、BMPとCMPのEntity Beanを利用した処理イメージを示します。
■ BMPの処理イメージ

- 呼出し元Beanは、口座NOを指定してfinderメソッドを呼び出します。コンテナは、Entity Beanのfinder処理を呼び出し、Entityオブジェクトを検索します。
- 呼出し元Beanは、支払金額に10万を設定し、ビジネスメソッド(Cal_bal)を呼び出します。コンテナは、Entity Beanのビジネスメソッドを呼び出す前にEntity BeanのLoad処理を呼び出します。
- Load処理では、データベースの検索を実施し、検索結果をEntityオブジェクトとして保持します。
- コンテナは、ビジネスメソッドを呼び出します。
- ビジネスメソッドは、Amount(残高)を更新します。
- 呼出し元Beanは、commitメソッドを呼び出します。コンテナは、Entity BeanのStore処理を呼び出し、Store処理ではデータベースの更新を実施します。
■ CMP1.1の処理イメージ

- 呼出し元Beanは、口座NOを指定してfinderメソッドを呼び出し、Entityオブジェクトの検索をコンテナに依頼します。
- 検索結果は、コンテナにより、Entityオブジェクトとして保持されます。
- 呼出し元Beanは、支払金額に10万を設定し、ビジネスメソッド(Cal_bal)を呼び出します。
- コンテナは、2.で保持した検索結果データをCMFへ転送し、ビジネスメソッドを呼び出します。
- ビジネスメソッドは、Amount(残高)を更新します。
- 呼出し元Beanからのcommit指示により、コンテナはデータベースの更新を実施します。

CMPマッピング定義の定義情報についての詳細はInterstage管理コンソールのヘルプを参照してください。
■ CMP2.0の処理イメージ

- 呼出し元Beanは、口座NOを指定してfinderメソッドを呼び出し、Entityオブジェクトの検索をコンテナに依頼します。
検索結果は、コンテナにより、Entityオブジェクトとして保持されます。
- 呼出し元Beanは、アクセッサメソッド(setAmount)を呼び出して、残高から10万を引いた値を新たに設定します。
- コンテナは、コンテナが実装するアクセッサメソッドを呼び出します。
- アクセッサメソッドは、Amount(残高)を更新します。
- 呼出し元Beanからのcommit指示により、コンテナはデータベースの更新を実施します。

CMP2.0の定義情報についての詳細はInterstage管理コンソールのヘルプを参照してください。
All Rights Reserved, Copyright (C) 富士通株式会社 2004