エンティティBeanは、データベース内の永続データと、そのデータに働きかけるメソッドを表します。リレーショナル・データベースの場合には、表の各行に対して1つのBeanが存在します(ただし、エンティティは、ビューまたはその他の複雑な問合せに基づく場合もあります)。レコードに対する各エンティティBeanは、一意の主キーにより識別されます。エンティティBeanを作成する場合、Enterprise JavaBeanウィザードではcreate()メソッドおよびその主キーを使用してエンティティBeanを作成します。
エンティティBeanのライフ・サイクルは、それが実行される仮想マシンのライフ・サイクルによる制限を受けないのが普通です。仮想マシンがクラッシュした、またはデータベースで現在のトランザクションがロールバックされた場合でも、エンティティBeanと、他のクライアントからの参照は破棄されません。その後クライアントは、オブジェクト参照および主キーを使用して、あるいはそのコンテナが状態を再ロードする際に、同じエンティティBeanに再接続できます。
エンティティBeanでは、独自に永続性を管理する(Bean管理の永続性、BMP)か、コンテナに永続性を管理させます(コンテナ管理の永続性、CMP)。
コンテナ管理の永続性(CMP)エンティティBeanでは、永続性に関するタスクがそのコンテナに委譲されるため、EJBのビジネス・ロジックの開発に専念できます。JDeveloperを使用してエンティティBeanをデプロイする場合、デプロイメント・ディスクリプタにおけるCMPフィールドと、そのデータベースへのマップ方法がJDeveloperにより識別されます。エンティティBeanを永続させるために必要なロジックは、コンテナにより生成されます。
データベースにマップされるフィールドは、コンテナ管理のフィールドと呼ばれます。これらのフィールドは、任意のJavaプリミティブ型にすることも、EJBモジュール・エディタで作成および管理が可能なシリアライズ可能オブジェクトにすることもできます。
JDeveloperのモデリング・ツールやウィザードを使用して、データベース表からCMP Beanをリバース・エンジニアリングできます。また、EJBをJDeveloperで作成してからデータベース表として生成することもできます。
Bean管理の永続性(BMP)エンティティBeanでは、永続性のロジックを明示的に記述する必要があります。データベース・テクノロジについての知識に加えて、Beanのフィールドを明示的にデータソースへマップすることが必要になります。
BMP Beanは、同時に複数のデータベースにマップしたり、フラット・ファイルなどのレガシー・システムにマップできます。このように外部で作業する場合を除き、CMP Beanをお薦めします。CMP Beanの方が使用しやすく、移行も容易です。
EJBについて
Enterprise JavaBeansおよびJDeveloperについて
Copyright © 1997, 2007, Oracle. All rights reserved.