-
「Red」ボタンをクリックし、「HR_EJB_JPA」を選択して実行中のアプリケーションを停止します。
-
「Red」ボタンをクリックし、「IntegratedWebLogicServer」を選択してWebLogic Serverを停止します。
-
「ViewController」ノードを閉じて、「Model」ノードを展開します。
-
ダイアグラムの「Employees」Entity Beanをダブルクリックしてクラスのソース・コードを開き、「@Entity」ノードを展開して非表示になっていたコードを表示します。
-
最後の@NamedQuery文の末尾にカンマを追加します。次に、名前から従業員を取得する問合せをクラスに追加します。以下のコードを追加します。
@NamedQuery(name = "Employees.findByName", query = "select o from Employees o where o.firstName like :p_name")
コードは次のようになります。
@Entity
@NamedQueries( {
@NamedQuery(name = "Employees.findAll", query = "select o from Employees o"),
@NamedQuery(name = "Employees.findBySal", query = "select o from Employees o where o.salary > :p_sal"),
@NamedQuery(name = "Employees.findByName", query = "select o from Employees o where o.firstName like :p_name")
})
-
「Make」アイコンをクリックして、Employees.javaクラスをコンパイルします。

Message - Logウィンドウにエラーが表示されていないことを確認します。
-
以下の手順を実行して、新しいメソッドをSession Beanに追加します。
アプリケーション・ナビゲータで「HRFacadeBean」ノードを右クリックし、コンテキスト・メニューから「Edit Session Facade」を選択します。
-
ダイアログの「Employees」ノードを展開します。新しい名前付き問合せのgetEmployeesFindByNameが公開可能なメソッドとして表示されていることを確認します。この問合せを選択し、「getEmployeesFindBySal」の選択を解除します。
「OK」をクリックします。
-
JDeveloperは、サンプル・クライアントを作成することでEJBをテストする手段を提供します。テストを実行するには、「HRFacadeBean」を右クリックし、コンテキスト・メニューから「New Sample Java Client」を選択します。
-
Application Server Connectionで「IntegratedWebLogicServer 」を選択します。
クライアントが作成され、コード・エディタで開かれます。
詳細表示 -
HRFacadeClientクラスのコードを確認し、以下のように値パラメータとして"P%"を追加することで、getEmployeesFindByName()メソッドで報告されているエラーを修正します。
Save All「
」アイコンをクリックして作業内容を保存します。 -
アプリケーション・ナビゲータで「HRFacadeBean」を右クリックします。次に、コンテキスト・メニューから「Run」を選択して、WebLogic Server内のファサードBeanを起動します。
WebLogic Serverが開始するまで待機します。
組込みのOracle WebLogic Serverは、JDeveloper内で実行されます。
詳細表示 -
「HRFacadeClient」を右クリックし、コンテキスト・メニューから「Run」を選択します。
-
ログ・ウィンドウは、クライアントに含まれる3つのメソッドに基づいて、データベース・データを返します。
-
findByName()メソッドの結果表示を改善するには、HRFacadeClient.java クラスで、getEmployeesFindAll()メソッドに対応したforループとgetDepartmentsFindAll()に対応したforループをコメント・アウトします。コードは次のようになります。
-
Makeボタン「
」をクリックしてクラスを再コンパイルし、エラーが返されないことを確認します。 -
「HRFacadeClient」クラスを右クリックし、コンテキスト・メニューから「Run」を選択します。
-
ログ・ウィンドウには、'P%'句によって返される行が表示されます。
ここでは、従業員レコードおよび部門レコードを検索するメソッドを実装したSession Beanを作成します。
-
新しい永続性ユニットを作成して、Java EEコンテナの外部でJavaサービスを実行します。
META-INFの「persistence.xml」を右クリックし、コンテキスト・メニューから「New Java Service Facade」を選択します。
-
Java Service Classパネルでは、新しい永続性ユニットを作成するか(次のパネル)、既存のユニットを使用するかを選択できます。「Choose a Persistence Unit or Create one in the next Panel」を選択し、「Generate a Sample Java Client 」チェック・ボックスを選択します。
「Next」をクリックします。 -
永続性ユニットにoutsideという名前をつけます。「JDBC Connection」を選択します。JDBC connectionがHRに設定されていることを確認してください。
「Next」をクリックします。 -
すべてのメソッドがデフォルトで選択されています。次に示すとおり、いくつかのメソッドの選択を解除します。
「Next」→「Finish」をクリックします。 -
ソース・エディタ・ウィンドウのJavaServiceFacadeClientクラスに対して、getEmployeesFindByNameメソッドのパラメータとして"P%"を追加します。メソッドは次のようになります。
(List<Employees>)javaServiceFacade.getEmployeesFindByName("P%")
-
Makeボタン「
」ボタンをクリックして、クラスをコンパイルし作業内容を保存します。
-
アプリケーション・ナビゲータで「JavaServiceFacadeClient」ノードを右クリックし、コンテキスト・メニューから「Run」を選択します。
-
ログ・ウィンドウは、Java EEコンテナの外部で実行されるクラスの実行結果を表示し、取得した最初のレコード(Pat Fay)のlastNameを返します。
-
META-INFの「persistence.xml」ノードをダブルクリックして、ファイルの内容を表示します。
-
両方の永続性ユニットが表示されます。Java EE内部のデフォルトの永続性ユニットとJava EE外部の新しい永続性ユニットが実行されます。「Source」タブをクリックして、詳細を確認します。
-
ソース・コードには、作成された2つの永続性ユニット(Modelとoutside)が含まれています。
- EJBダイアグラマを使用したEJB 3.0によるデータ・モデルの構築
- ビュー・プロジェクトの構築
- UIへの新規メソッドの追加と公開
- Java EEコンテナの内部と外部でのファサードBeanのテスト
- 『Oracle® Fusion Middleware User's Guide for Oracle JDeveloper』の"Developing with EJB and JPA Components"
- 『Oracle® Fusion Middleware Java EE Developer's Guide for Oracle Application Development Framework』
- 『Oracle® Fusion Middleware Programming Enterprise JavaBeans for Oracle WebLogic Server』
パート1:EJBダイアグラマを使用したEJB 3.0によるデータ・モデルの構築