「新規」ギャラリの「Business Tier」->「Enterprise JavaBeans(EJB)」カテゴリから、新規のEnterprise JavaBeans(EJB)を作成します。作成するEJBのタイプを選択し、「OK」をクリックします。プロジェクトで最初のEJBを作成している場合は、EJBモジュールが作成されます。すでに既存のEJBモジュールがある場合は、新規のEJBがそのモジュールに追加されます。
エンティティBeanは、データベース内の永続データと、そのデータに働きかけるメソッドを表します。リレーショナル・データベースの場合には、表の各行に対して1つのBeanが存在します。レコードに対する各エンティティBeanは、一意の主キーにより識別されます。エンティティBeanを作成する場合、Enterprise JavaBeanウィザードではcreate()メソッドおよびその主キーを使用してエンティティBeanを作成します。
エンティティBeanでは、独自に永続性を管理する(Bean管理の永続性、BMP)か、コンテナに永続性を管理させます(コンテナ管理の永続性、CMP)。
CMPエンティティBeanでは、永続性に関するタスクがそのコンテナに委譲されるため、EJBのビジネス・ロジックの開発に専念できます。JDeveloperを使用してエンティティBeanをデプロイする場合、デプロイメント・ディスクリプタにおけるCMPフィールドと、そのデータベースへのマップ方法がJDeveloperにより識別されます。エンティティBeanを永続させるために必要なロジックは、コンテナにより生成されます。
データベースにマップされるフィールドは、コンテナ管理のフィールドと呼ばれます。これらのフィールドは、任意のJavaプリミティブ型にすることも、EJBモジュール・エディタで作成および管理が可能なシリアライズ可能オブジェクトにすることもできます。
Message-Driven Beanは、カンバセーショナル・ステートがなく、複数のクライアントからのメッセージを同時に処理できるという点でステートレス・セッションBeanと似ています。ただし、ステートレス・セッションBeanと異なり、Message-Driven Beanにはインタフェースがなく、Beanクラスのみがあります。クライアントからのアクセスにインタフェースは使用されません。
セッションBeanはクライアントにより作成され、1セッションの間のみ存続します。セッションBeanは、データベースの読取り、書込みまたは更新などの操作をクライアントにかわって実行しますが、データベースに格納されるデータを表すわけではありません。セッションBeanはトランザクション対応にできます。ただし、永続的ではないため、システム・クラッシュ後のリカバリは不可能です。
セッションBeanをステートフルにした場合、カンバセーショナル・ステートをメソッド間およびトランザクション間で維持できます。ステート(状態)とは、セッションBeanとそのクライアントとの間におけるカンバセーション(対話)を説明する用語です。EJBコンテナが、セッションBeanのカンバセーショナル・ステートを管理し、不要になった時点でセッションBeanを破棄します。