キー・クラスとキー・フィールド

キー・クラス は、エンティティー Bean の作成や検索を行う際に使用します。キー・クラスは、リレーショナル・データベースの行の主キー列に対応するエンティティー Bean の識別を表します。 これらの列の 1 つに対応するエンティティー Bean の中にある指定されたコンテナーによって管理されるフィールドを、キー・フィールド といいます。

主キー・クラスの主な指定方法には、次の 2 つがあります。

1.1 CMP Bean の場合、Bean クラス内のそれぞれのキー・フィールドごとに、 キー・クラスで同じ名前と型をもつフィールドがなければなりません。 逆に言えば、キー・クラスのすべてのフィールドで、Bean クラスに同じ名前と型をもつフィールドが必要であり、 これらのフィールドはキー・フィールドと見なされます。2.x CMP Bean には、 それぞれのキー・フィールドに get および set メソッドが必要になります。

例えば、銀行用アプリケーション用の EJB 1.1 Account Bean があるとします。 accountNumber プロパティーがキー・フィールドとして指定されています。 これは、ACCOUNT データベース表の主キーに対応しています。 Account (AccountKey) のキー・クラスには、次のものが含まれます。

AccountKey の代わりに、Account は java.lang.String のキー・クラスと、 accountNumber の主キー・フィールドを使用することがあります。

キー・クラスは、継承されたすべてのエンタープライズ Bean で共通です。 つまり、親エンタープライズ Bean のキー・クラスは、そのすべての子エンタープライズ Bean でも使用されるということです。 したがって、キー・クラスが、サブタイプを持つエンティティーまたは継承構造の変更に対して変更される場合、 すべてのサブタイプ・エンティティーが対応するホーム・クラスおよび Bean クラスを再生成します。 キー・クラスは、同じ継承の階層内の Bean 内のみで共用できます。

キーの一部として役割を持ち、その役割のエンタープライズ Bean 型のキー形状が変更された場合 (つまり、キーが追加または除去された場合)、 これらの変更をすべてのキーの役割に波及させるためのダイアログが表示されます。 ほとんどの場合は、「はい 」または「すべてはい」を選択します。 すべてのキー役割による変更を波及させないと、 コンパイル・エラーになります。

不明の主キーはサポートされません

EJB ツールでは、現在、EJB 2.0 仕様で記述されている不明の主キー定義はサポートされていません。その次善策は、 特定の主キー・クラスを定義することです。

関連タスク
CMP フィールドの追加または除去
Bean へのクライアント・ビューまたはインターフェースの追加

フィードバック