事前に、『課題 1.2: ワークスペースを準備する』の学習を済ませてください。
課題 1.3 では、UML クラス・ダイアグラムから エンティティー Bean を作成することでこの課題を進めます。 このモジュールでは、以下の作業を行います。
このシナリオでは、2 つの エンティティー Bean (Author、Book) を作成します。 Author Bean は、AUTHOR という名前のデータベース・テーブルを表します。 この Bean には、作成者を表すフィールド (ID、名前、年齢、性別) が含まれています。 Bean のこれらのフィールドは、AUTHOR テーブルの列に直接マップされます。
Book Bean は、本 (ブック) を表します。フィールドには、ID と表題があります。 Book Bean に対応するデータは BOOK テーブルに保管されます。
以下のステップに従って、Author Bean を作成します。
CMP 2.x エンティティー Bean
がリストの中央に表示されます。
CMP 2.x エンティティー Bean
の右側の矢印 (CMP 1.x エンティティー Bean
です。
CMP 2.x エンティティー Bean
を選択する。
EJB Bean は複雑なので、このアクションにより、「エンタープライズ Bean の作成」ウィザードが起動します。 このウィザードを利用して Bean を定義できます。
ウィザードの先頭ページで、以下のステップに従ってください。
UML EJB tutorial
であることを確認する。Author
を指定する。ejbModule
であることを確認する。sample
に変更する。2.x
であることを確認する。ウィザードの 2 番目のページで、以下のステップに従ってください。
sample.AuthorBean
であることを確認する。sample.AuthorLocalHome
であることを確認する。sample.AuthorLocal
であることを確認する。java.lang.Integer
であることを確認する。ID
が CMP 属性のリストにあることを確認する。java.lang.String
の name
という名前の属性を作成する。
「配列」および「キー・フィールド」チェック・ボックスはチェック・マークを外したままにして、
「getter および setter メソッドをローカル・インターフェースにプロモート」チェック・ボックスは選択されたままにします。
getter および setter をローカル・インターフェースにプロモートするときに、
それらはクライアント・アプリケーションに公開されます。java.lang.Integer
の age
という名前の属性を作成する。
「配列」および「キー・フィールド」チェック・ボックスはチェック・マークを外したままにして、
「getter および setter メソッドをローカル・インターフェースにプロモート」チェック・ボックスは選択されたままにします。最初の エンティティー 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
です。ID
。java.lang.Integer
の型 (ID
属性は自動的に作成されます)表題
。java.lang.String
タイプの表題2 番目の エンティティー Bean を作成して、クラス・ダイアグラムに視覚化すると、 以下のファイルが「プロジェクト・エクスプローラー」ビューに表示されます。
これで、EJB デプロイメント記述子は「概要」ページの Enterprise JavaBeans のリストに Book を持つことになります。 Book Bean は Author Bean と同様に詳細情報を持っています。 「プロジェクト・エクスプローラー」ビューで、EJB プロジェクトの下のデプロイメント記述子ディレクトリーを展開します。 「エンティティー Bean」 > 「Book」と展開して、この Bean のコンポーネントへのリンク探索します。
次に、クラス・ダイアグラムに 2 つの CMP Bean 間の関係を定義します。
単一の Author はゼロまたはそれ以上の Book と関連付けできます。
そして、単一の Book は 1 つまたは複数の Auther と関連付けできます。
この関係は 0..*:0..*
表記を使用して、
双方向の多対多関係 で表されます。
この詳細を見えるようにするために、クラス・ダイアグラムにある エレメントを再調整できます。
「アウトライン」ビューと「プロパティー」ビューは、 クラス・ダイアグラム全体、および特定 EJB コンポーネント・プロパティーについて役に立つ情報を提供します。
「アウトライン」ビューは、デフォルトでワークベンチの左下に表示されます。 このビューを使用して、以下のステップに従い大きいダイアグラムをナビゲートします。
「プロパティー」ビューは、デフォルトでワークベンチの右下に表示されます。 このビューには 2 つのタブ (外観および拡張) があります。 「外観」ページで、 色、フォント、およびその他のプロパティーを変更できます。 「拡張」ページには、 クラス・ダイアグラムで強調表示されたエレメントの詳細なプロパティーが表示されます。 「プロパティー」ビューの一部プロパティー値は読み取り専用であり、その他の幾つかは変更可能です。
次に、Author Bean について CMP 属性の一部を変更します。
java.lang.Character
の gender
というフィールドを追加する。gender
属性が表示されます。
name
属性を強調表示する。AuthorKey
で、新規キー・クラスを作成する。
これで、name 属性が基本キー・フィールドのシンボルを付加してクラス・ダイアグラムに表示されます。
新規キー・クラスは UML EJB tutorialClient >
ejbModule > sample ディレクトリーに表示されます。次に、クラス・ダイアグラムを詳しく見ていきましょう。 クラス・ダイアグラムのタイトル・バーをダブルクリックして拡張します。 ワークベンチ・ウィンドウの右方にパレットを拡張表示されていますが、 クラス・ダイアグラム・エディターがワークベンチ・ウィンドウの大部分を占めています。
EJB Bean Java エディターを開くと、 このエディターの「アウトライン」ビューがワークベンチの下左隅に表示されます。 このビューで Bean を変更することができます。 「アウトライン」ビューにあるメソッドから 1 つを右クリックして、 「エンタープライズ Bean」を選択します。 「プロモート」または「デモート」選択項目から 1 つを選択して、 選択されたメソッドをリスト表示されたインターフェース・タイプの内の 1 つにプロモートまたはデモートします。
EJB Bean Java エディターを使用して、メソッドをクラスに追加することを試みます。 新規メソッドが「アウトライン」ビューに表示されます。 新規メソッドをインターフェースにプロモートすると、このメソッドはこのクラス・ダイアグラムに表示されます。
文字飾り | 意味 |
---|---|
![]() |
CMP 2.x エンティティー Bean |
![]() |
基本キー・フィールド |
![]() |
CMP フィールド (基本キー・フィールドではない) |
![]() |
ローカル・インターフェース |
![]() |
ローカル・ホーム・インターフェース |
![]() |
リモート・インターフェース |
![]() |
ローカル・メソッド |
![]() |
ローカル・ホーム・メソッド |
![]() |
リモート・メソッド |
文字飾りについて詳しくは、 UML 視覚化参照 のインフォメーション・センターに記載されています。
クラス・ダイアグラムで変更を行うと、それに対応した変更が基礎コードにも自動的に加えられます。 逆に、コードを直接変更すると、クラス・ダイアグラムはその変更を反映するよう自動的に変更されます。 ワークベンチ内で行われたあらゆるタイプの変更は、 結果的にコードを自動的に、即時に妥当性再検査します。 EJB アプリケーションの場合、妥当性検査では、Java クラスのコンパイル・エラー、クラスパスの問題、 および EJB 仕様違反が対象になります。
ワークベンチの下部に幾つかのビューがスタックされています。その中の 1 つが、「問題」という名前のビューです。 このビューには、ワークベンチ内のすべてのプロジェクトとファイルに関するすべてのエラー、警告、 および情報メッセージが表示されます。 リストされている問題のいずれか 1 つをダブルクリックすると、エラーが起こった場所を特定するためのファイルが開きます。
「問題」ビューにリストされる問題数は、デフォルトで 100 に限られています。
この制限値は変更できます。あるいはビューをフィルター操作して、希望する項目だけを表示させることもできます。
フィルター・オプションとして、問題の重大度、プロジェクト、リソース、および問題のタイプがあります。
これらのデフォルト設定を変更するには、矢印
() をクリックして、
「フィルター」を選択します。
クラス・ダイアグラムのデフォルトの動作と表示特性の幾つかを変更できます。 「ウィンドウ」メニューで、「設定」を選択します。 変更できる項目を確認するには、「モデリング」を展開します。
メイン・セクションには、 グローバル設定 (ダイアグラムでクラスの上をマウス・ポインターが移動したときに、アクション・バーを表示するか、など) が含まれています。 外観セクションには幾つかのページがあり、それらのページでフォント、色、コネクター、形状などを変更できます。 EJB セクションにはクラス・ダイアグラムが開く時期の設定が含まれています。 その他のセクションには、Java フィールドとメソッド、ルールとグリッド、そして妥当性検査についてのオプションが含まれています。
このセクションをステップスルーすると、さまざまなオプションに精通できます。 変更した後、「OK」を押して変更内容を保管し、「設定」ページを終了します。
これで、『課題 1.4: エンティティー Bean をリレーショナル・データベースにマップする』に進む準備ができました。