課題 1.3: クラス・ダイアグラムに エンティティー Bean を追加する

事前に、『課題 1.2: ワークスペースを準備する』の学習を済ませてください。

課題 1.3 では、UML クラス・ダイアグラムから エンティティー Bean を作成することでこの課題を進めます。 このモジュールでは、以下の作業を行います。

Bean の説明

このシナリオでは、2 つの エンティティー Bean (Author、Book) を作成します。 Author Bean は、AUTHOR という名前のデータベース・テーブルを表します。 この Bean には、作成者を表すフィールド (ID、名前、年齢、性別) が含まれています。 Bean のこれらのフィールドは、AUTHOR テーブルの列に直接マップされます。

Book Bean は、本 (ブック) を表します。フィールドには、ID と表題があります。 Book Bean に対応するデータは BOOK テーブルに保管されます。

Author Bean を作成する

以下のステップに従って、Author Bean を作成します。

  1. UML クラス・ダイアグラムの右側に表示されているパレットの EJB ドロワーを見付ける。
  2. EJB ドロワーをまだ開いていない場合は、クリックして開く。 CMP 2.x エンティティー Bean がリストの中央に表示されます。
  3. CMP 2.x エンティティー Bean の右側の矢印 (プルダウン・メニュー・アイコン) をクリックして、 多くの選択項目を表示する。 リストされるその他の選択項目は CMP 1.x エンティティー Bean です。
  4. CMP 2.x エンティティー Bean を選択する。
  5. クラス・ダイアグラム上にマウス・ポインターを移動して、Bean を配置したい場所にカーソルを移動してクリックする。 これで、新規 CMP 2.x エンティティー Bean が作成され、このクラス・ダイアグラムに視覚化されます。

EJB Bean は複雑なので、このアクションにより、「エンタープライズ Bean の作成」ウィザードが起動します。 このウィザードを利用して Bean を定義できます。

「エンタープライズ Bean の作成」ページ

ウィザードの先頭ページで、以下のステップに従ってください。

  1. EJB プロジェクトUML EJB tutorial であることを確認する。
  2. Bean 名Author を指定する。
  3. ソース・フォルダーejbModule であることを確認する。
  4. デフォルト・パッケージ名を sample に変更する。
  5. CMP バージョン2.x であることを確認する。
  6. 次へ」をクリックする。

新規 EJB ウィザードの「基本プロパティー」ページ

「エンタープライズ Bean の詳細」ページ

ウィザードの 2 番目のページで、以下のステップに従ってください。

  1. Bean スーパータイプはブランクのままにする。
  2. Bean クラスsample.AuthorBean であることを確認する。
  3. リモート・クライアント・ビュー」チェック・ボックスは、チェック・マークを外したままにする。
  4. ローカル・クライアント・ビュー」チェック・ボックスを選択する。
  5. ローカル・ホーム・インターフェース名が sample.AuthorLocalHome であることを確認する。
  6. ローカル・インターフェース名が sample.AuthorLocal であることを確認する。
  7. キー・クラスjava.lang.Integer であることを確認する。
  8. キー・クラスに単一キー属性タイプを使用する」チェック・ボックスを選択する。
  9. キー ID が CMP 属性のリストにあることを確認する。
  10. 2 つの CMP 属性を追加する。
    1. 追加」をクリックする。
    2. タイプが java.lang.Stringname という名前の属性を作成する。 「配列」および「キー・フィールド」チェック・ボックスはチェック・マークを外したままにして、 「getter および setter メソッドをローカル・インターフェースにプロモート」チェック・ボックスは選択されたままにします。 getter および setter をローカル・インターフェースにプロモートするときに、 それらはクライアント・アプリケーションに公開されます。
    3. 適用」をクリックする。
    4. タイプが java.lang.Integerage という名前の属性を作成する。 「配列」および「キー・フィールド」チェック・ボックスはチェック・マークを外したままにして、 「getter および setter メソッドをローカル・インターフェースにプロモート」チェック・ボックスは選択されたままにします。
    5. 適用」をクリックして、「閉じる」をクリックする。
    6. 終了」をクリックする。

新規 EJB ウィザードの「エンタープライズ Bean の詳細」ページ

最初の エンティティー Bean が作成され、クラス・ダイアグラムに視覚化されます。 以下のファイルが「プロジェクト・エクスプローラー」ビューに表示されます。

EJB デプロイメント記述子を開いて、「Enterprise JavaBeans」見出しの下の「概説」ページに、 Author Bean がリスト表示されていることに注目してください。 Author Bean エントリーをクリックします。 デプロイメント記述子エディターの「Bean」ページが開きます。 そこには、CMP フィールドとクラスとインターフェースの 4 個のファイル (基本キーの java.lang.Integer が使用するクラスを含む) が表示されます。

「WebSphere バインディング」見出しの下の「Bean」ページに、 JNDI 名の ejb/sample/AuthorLocalHome が表示されます。 この JNDI 名は、クライアント・アプリケーションが Bean を検索する際に使用されます。

EJB プロジェクトの下の「プロジェクト・エクスプローラー」ビューで、 ejbModule > META-INF ディレクトリーには新規ファイルの ibm-ejb-jar-bnd.xmi があります。 このファイルには、IBM 固有のバインディング情報が入っています。 この情報にはデプロイメント記述子エディターを利用してアクセスできますが、 アプリケーションを IBM 以外のベンダーの EJB サーバー上にデプロイする場合、 IBM 固有の強化機能を簡単に除去できるようにするために、これらの値は別のファイルに保管されます。 EJB の開発過程の後のほうで ibm-ejb-jar-ext.xmi ファイルが出てきます。 このファイルには、IBM 固有の拡張子情報が入っています。

「プロジェクト・エクスプローラー」ビューでも、EJB プロジェクトの下のデプロイメント記述子ディレクトリーを展開し、 さらに、「エンティティー Bean」 > 「Author」と展開して、Author Bean を構成する様々なコンポーネントへのリンクを探索します。

Book Bean を作成する

次に、Book Bean を作成します。以下のステップに従ってください。

  1. クラス・ダイアグラムにもう 1 つの CMP 2.x エンティティー Bean を追加する。
  2. Author Bean と同じステップを実行する。ただし、次の点が異なります。
  3. 終了」をクリックする。

2 番目の エンティティー Bean を作成して、クラス・ダイアグラムに視覚化すると、 以下のファイルが「プロジェクト・エクスプローラー」ビューに表示されます。

これで、EJB デプロイメント記述子は「概要」ページの Enterprise JavaBeans のリストに Book を持つことになります。 Book Bean は Author Bean と同様に詳細情報を持っています。 「プロジェクト・エクスプローラー」ビューで、EJB プロジェクトの下のデプロイメント記述子ディレクトリーを展開します。 「エンティティー Bean」 > 「Book」と展開して、この Bean のコンポーネントへのリンク探索します。

Bean 間の関係を定義する

次に、クラス・ダイアグラムに 2 つの CMP Bean 間の関係を定義します。 単一の Author はゼロまたはそれ以上の Book と関連付けできます。 そして、単一の Book は 1 つまたは複数の Auther と関連付けできます。 この関係は 0..*:0..* 表記を使用して、 双方向の多対多関係 で表されます。

  1. UML クラス・ダイアグラムのタイトル・バーをダブルクリックして、ウィンドウを拡張する。
  2. 「パレット」ビューで、矢印 (プルダウン・メニュー・アイコン) をクリックし、CMP 関係ドロワーを展開する。
  3. 0..*:0..* CMP 関係を選択する。
  4. マウス・ポインターを Author Bean 上に移動する。 この関係がこの Bean に有効であれば、 矢印アイコン (矢印アイコン) が表示されます。 この関係が無効な場合は、同じアイコンに無効シンボルがプラスされます (無効矢印アイコン)。
  5. Author Bean 上をクリックする。
  6. カーソルを Book Bean にドラッグして、そこで放す。 このターゲットの Bean がこの関係に対して無効であれば、無効アイコン (無効矢印アイコン) が表示されます。
  7. 適切なコードが生成されると、CMP 関係はこのダイアグラム上に 関連 (association) として視覚化されます。 デプロイメント記述子に、これらの関係は「Bean」ページの「関係」見出しの下に表示されます。
  8. Ctrl + S を選択して、クラス・ダイアグラムを保管する。

EJB デプロイメント記述子の関係セクション

この詳細を見えるようにするために、クラス・ダイアグラムにある エレメントを再調整できます。

関係付けされたクラス・ダイアグラムの表示

追加ビューを探索する

「アウトライン」ビューと「プロパティー」ビューは、 クラス・ダイアグラム全体、および特定 EJB コンポーネント・プロパティーについて役に立つ情報を提供します。

「アウトライン」ビューは、デフォルトでワークベンチの左下に表示されます。 このビューを使用して、以下のステップに従い大きいダイアグラムをナビゲートします。

  1. クラス・ダイアグラムが、なおワークベンチ・フレーム全体を使用している場合は、 そのクラス・ダイアグラムのタイトル・バーを再度ダブルクリックして、通常サイズに戻す。
  2. 「アウトライン」ビューがワークベンチの左下隅にあることを確認する。 そこでは、クラス・ダイアグラムは小さいスケールで表示されています。 ダイアグラムが大きすぎて編集ウィンドウにすべてを表示できない場合は、 「アウトライン」ビュー内の強調表示された長方形をご覧ください。 そこには、ダイアグラムで見ることができる部分が示されています。
  3. 「アウトライン」ビューで、マウス・ポインターを使用して強調表示された長方形の周辺に移動する。 エディター域で見ることができるクラス・ダイアグラムのセクションは、 「アウトライン」ビュー内で強調表示されているセクションに呼応して移動します。

クラス・ダイアグラムの「アウトライン」ビュー

「プロパティー」ビューは、デフォルトでワークベンチの右下に表示されます。 このビューには 2 つのタブ (外観および拡張) があります。 「外観」ページで、 色、フォント、およびその他のプロパティーを変更できます。 「拡張」ページには、 クラス・ダイアグラムで強調表示されたエレメントの詳細なプロパティーが表示されます。 「プロパティー」ビューの一部プロパティー値は読み取り専用であり、その他の幾つかは変更可能です。

クラス・ダイアグラムの「プロパティー」ビュー

UML クラス・ダイアグラムから属性を変更する

次に、Author Bean について CMP 属性の一部を変更します。

CMP 属性を Bean に追加する

  1. マウス・カーソルを Author Bean の任意の場所に移動する。 アクション・バー が表示されます。

  2. アクション・バー
  3. アクション・バーの基本キー・シンボル (基本キー・フィールド・アイコン) をクリックして、 追加すべき CMP 属性を Author Bean に追加する。 「CMP フィールド」ウィザードが開きます。
  4. タイプが java.lang.Charactergender というフィールドを追加する。
  5. 「適用」 > 「閉じる」 > 「終了」の順にクリックする。 この Bean クラスは更新されて、クラス・ダイアグラム上でこの Bean の属性コンパートメントに gender 属性が表示されます。

Author Bean の CMP 属性

キーの CMP 属性パーツを作成する

  1. Author Bean の name 属性を強調表示する。
  2. 右クリックして、「編集」 > 「キーに追加」を選択する。 「新規キー・クラス」ウィザードが開きます。 ここで、このキーはまだプリミティブな Java の型ではないために、新規キー・クラスが必要になります。 このステップの前では、キー・クラスとして java.lang.Integer が使用されました。
  3. OK」をクリックして、事前選択されたオプションを使用し、 デフォルトのキー・クラス名の AuthorKey で、新規キー・クラスを作成する。 これで、name 属性が基本キー・フィールドのシンボルを付加してクラス・ダイアグラムに表示されます。 新規キー・クラスは UML EJB tutorialClient > ejbModule > sample ディレクトリーに表示されます。
  4. Ctrl + S を選択して、クラス・ダイアグラムを保管する。

「新規キー・クラス」ウィザード

UML クラス・ダイアグラムにあるオブジェクトを取り扱う

次に、クラス・ダイアグラムを詳しく見ていきましょう。 クラス・ダイアグラムのタイトル・バーをダブルクリックして拡張します。 ワークベンチ・ウィンドウの右方にパレットを拡張表示されていますが、 クラス・ダイアグラム・エディターがワークベンチ・ウィンドウの大部分を占めています。

ダイアグラム上で Bean コンポーネントを再配置する

  1. Bean のどれか 1 つを 1 回だけクリックする。 Bean の長方形の周りに小さい黒い四角形が現れます。これは、この Bean が選択されたことを示します。
  2. Bean をクラス・ダイアグラム上の別のロケーションにドラッグしてドロップする。 Author または Book Bean を移動すると、関係矢印が新規の位置を反映するよう調整されます。

表示される Bean の項目を変更する

  1. クラス・ダイアグラム・エディターで、Author Bean を強調表示する。 この Bean を表す長方形は、幾つかのコンパートメントに分かれています。 表示されるデフォルトのコンパートメントは属性と提供されたインターフェースです。 コンパートメントには、左上部に「アイコンの非表示」 (アイコンの非表示) があります。
  2. 「アイコンの非表示」アイコンの 1 つをクリックして、Bean のこのコンパートメントを非表示にする。 コンパートメントは縮小し、「アイコンの非表示」アイコンは「アイコンの表示」アイコン (アイコンの表示) で置換されます。
  3. 「アイコンの表示」アイコンをクリックして、そのコンパートメントを再拡張する。
  4. Bean を右クリックして、 「フィルター」 > 「コンパートメントの表示/非表示」を選択し、表示または非表示のコンパートメントを選択する。

非表示および表示セクションのある EJB

ダイアグラムからエディターを開く

EJB Bean Java エディターを開くと、 このエディターの「アウトライン」ビューがワークベンチの下左隅に表示されます。 このビューで Bean を変更することができます。 「アウトライン」ビューにあるメソッドから 1 つを右クリックして、 「エンタープライズ Bean」を選択します。 「プロモート」または「デモート」選択項目から 1 つを選択して、 選択されたメソッドをリスト表示されたインターフェース・タイプの内の 1 つにプロモートまたはデモートします。

EJB Bean Java エディターを使用して、メソッドをクラスに追加することを試みます。 新規メソッドが「アウトライン」ビューに表示されます。 新規メソッドをインターフェースにプロモートすると、このメソッドはこのクラス・ダイアグラムに表示されます。

EJB Bean Java エディター

Bean に関連した文字飾りに習熟する

文字飾り 意味
CMP 2.x エンティティー Bean の文字飾り CMP 2.x エンティティー Bean
基本キー・フィールドの文字飾り 基本キー・フィールド
CMP フィールドの文字飾り CMP フィールド (基本キー・フィールドではない)
ローカル・インターフェース文字飾り ローカル・インターフェース
ローカル・ホーム・インターフェースの文字飾り ローカル・ホーム・インターフェース
リモート・インターフェースの文字飾り リモート・インターフェース
ローカル・メソッドの文字飾り ローカル・メソッド
ローカル・ホーム・メソッドの文字飾り ローカル・ホーム・メソッド
リモート・メソッドの文字飾り リモート・メソッド

文字飾りについて詳しくは、 UML 視覚化参照 のインフォメーション・センターに記載されています。

UML クラス・ダイアグラムおよびコード対話

クラス・ダイアグラムで変更を行うと、それに対応した変更が基礎コードにも自動的に加えられます。 逆に、コードを直接変更すると、クラス・ダイアグラムはその変更を反映するよう自動的に変更されます。 ワークベンチ内で行われたあらゆるタイプの変更は、 結果的にコードを自動的に、即時に妥当性再検査します。 EJB アプリケーションの場合、妥当性検査では、Java クラスのコンパイル・エラー、クラスパスの問題、 および EJB 仕様違反が対象になります。

ワークベンチの下部に幾つかのビューがスタックされています。その中の 1 つが、「問題」という名前のビューです。 このビューには、ワークベンチ内のすべてのプロジェクトとファイルに関するすべてのエラー、警告、 および情報メッセージが表示されます。 リストされている問題のいずれか 1 つをダブルクリックすると、エラーが起こった場所を特定するためのファイルが開きます。

「問題」ビューにリストされる問題数は、デフォルトで 100 に限られています。 この制限値は変更できます。あるいはビューをフィルター操作して、希望する項目だけを表示させることもできます。 フィルター・オプションとして、問題の重大度、プロジェクト、リソース、および問題のタイプがあります。 これらのデフォルト設定を変更するには、矢印 (プルダウン・メニュー・アイコン) をクリックして、 「フィルター」を選択します。

UML クラス・ダイアグラムの設定を構成する

クラス・ダイアグラムのデフォルトの動作と表示特性の幾つかを変更できます。 「ウィンドウ」メニューで、「設定」を選択します。 変更できる項目を確認するには、「モデリング」を展開します。

メイン・セクションには、 グローバル設定 (ダイアグラムでクラスの上をマウス・ポインターが移動したときに、アクション・バーを表示するか、など) が含まれています。 外観セクションには幾つかのページがあり、それらのページでフォント、色、コネクター、形状などを変更できます。 EJB セクションにはクラス・ダイアグラムが開く時期の設定が含まれています。 その他のセクションには、Java フィールドとメソッド、ルールとグリッド、そして妥当性検査についてのオプションが含まれています。

このセクションをステップスルーすると、さまざまなオプションに精通できます。 変更した後、「OK」を押して変更内容を保管し、「設定」ページを終了します。

これで、『課題 1.4: エンティティー Bean をリレーショナル・データベースにマップする』に進む準備ができました。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.