EJB コンポーザーの新規作成

コンポーザー・クラスは、単一の複合 Bean フィールドを複数のデータベース列にマップするために使用します。 複合フィールドはそれ自体がフィールドと振る舞いを持つオブジェクトであるため、このような構成が必要です。

次の例を考えてください。CustomerBean CMP エンティティー Bean に CustomerAddress と呼ばれる属性があります。 CustomerAddress 属性の型は複合型であって、Address.class と呼ばれるクラスに定義されています。このクラスには複数の Java™ フィールド (streetcity、および zip) が含まれています。 複合型 CustomerAddress を表中の別の列にマップするためには、新しいコンポーザー・クラスを使用して、 コンポーザー・クラス (Address.class) のフィールドからデータベース内の列へのマップを定義する必要があります。 このコンポーザー・クラスは、Address.class を作成して、 CustomerBean 内の CustomerAddress 属性をマップできるようにします。

新規コンポーザー・ウィザードを使用して、新しいコンポーザー定義を型リストに追加します。 新しいコンポーザー定義を作成した後、マッピング・エディターでそのコンポーザー・クラスを使用することができます。

制限および注意:
  • 構成クラス内の Java フィールド名は、 コンポーザー・クラスの getAttributes メソッド内の属性名に正確に一致しなければなりません。 これらのフィールド名が一致しない場合は、「タスク」ビューに警告が表示されます。
  • スタブ・コンポーザー・クラスをウィザードで生成することを選択した場合、 生成されるコンポーザー・クラスは不完全になります。 コンポーザー・クラス内に dataFrom メソッドと objectFrom メソッドを定義する必要があります。 ウィザードは、どのフィールドが構成型のどの部分にマップされるかを予測できません。 したがって、コンポーザーをマッピングに使用する前に、これらのメソッドを実装しなければなりません。
  • コンポーザーを作成した後、userDefinedComposer.xmi ファイル、コンポーザー・クラス、 および構成型クラスを別の EJB プロジェクトにコピーして、別のプロジェクトでそのコンポーザーを使用することができます。
  • ネストされたコンポーザーは、コンポーザー・ウィザードではサポートされません。 つまり、このウィザードは、既に構成型であるフィールドの作成をサポートしません。
  • コンポーザー・マップはコンバーターをサポートしません。 2 つの型の間にコンバーターが必要な場合は、コンバーターのインスタンスを作成して、 コンポーザーの dataFrom メソッドおよび ObjectFrom メソッドで処理しなければなりません。

コンポーザー定義を新規作成するには、次のようにします。

  1. J2EE パースペクティブで、 「ファイル」>「新規」>「その他」>「EJB」>「コンバーターまたはコンポーザー」を選択し、 「次へ」をクリックする。
  2. コンポーザー」ラジオ・ボタンを選択する。
  3. EJB プロジェクトを入力または選択する。
  4. 完全修飾コンポーザー名を入力する。
  5. 完全修飾スーパータイプを入力または選択する。
  6. 完全修飾ターゲット型を入力または選択する。
  7. 新規構成フィールド型」を追加または選択する。 複数の構成フィールド型を選択しなければなりません。
  8. さらに、「選択したフィールドを除去」することもできます。
  9. オプション: 「コンポーザー・スタブ・クラスの生成」チェック・ボックスを選択して、 新しいコンポーザー定義用に新しいコンポーザー・クラス・テンプレートを生成する。 生成されるコンポーザー・スタブ・クラスは完全ではありません。 ユーザーが dataFrom メソッドと objectFrom メソッドを定義する必要があります。
  10. 終了」をクリックする。 マッピング・エディターを開くと、定義したコンポーザー名が「アウトライン」ビューに表示されます。
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved. (C) Copyright IBM Japan 2005