Cosminexus V9 アプリケーションサーバ システム構築・運用ガイド

[目次][用語][索引][前へ][次へ]

付録M.5 JPAのサンプルプログラム

JPAを使用するサンプルプログラムは,次のディレクトリに格納されます。

<Application Serverのインストールディレクトリ>\CC\examples\jpa\employeeinfo

サンプルの概要と実行手順を説明します。

参考
JPAのサンプルプログラムは,アノテーションを利用して,CJPAプロバイダを使用するプログラムです。O/Rマッピングファイルを使用してマッピングする場合は,「(3) O/Rマッピングファイルの使用方法」を参照してください。
<この項の構成>
(1) JPAのサンプルプログラムの概要
(2) JPAのサンプルプログラムの実行手順
(3) O/Rマッピングファイルの使用方法

(1) JPAのサンプルプログラムの概要

JPAのサンプルプログラムの構成を次に示します。このサンプルプログラムでは,従業員情報を取得してデータを更新します。なお,データベースのテーブルに対して,従業員情報の新規登録および削除は実行できません。また,[Update]ボタンをクリックしたあとで実施されるfindメソッドからflushメソッド間の処理中に,ほかからデータベースが変更されると楽観的ロックを検出します。

図M-32 JPAのサンプルプログラムの構成

[図データ]

Webブラウザを使用してサーブレットにアクセスし,実行結果をWebブラウザ上に表示します。このサンプルプログラムでは,サーブレットからStateless Session Beanを呼び出し,Beanの中でJPAを利用してデータベースを操作します。

JPAのサンプルプログラムの構成内容を次の表に示します。

表M-3 JPAのサンプルプログラムの構成内容

項目 内容
Enterprise Bean種別 Stateless Session Bean
トランザクション CMT
Entity Manager コンテナ管理
トランザクション種別 JTA
永続化コンテキスト トランザクションスコープ

サンプルプログラムのエンティティの構成を次に示します。

図M-33 エンティティの構成

[図データ]

図に示すように,サンプルプログラムでは,エンティティ間のリレーションに単方向のManyToOneを利用します。従業員エンティティクラスだけを具象化し,部門エンティティは従業員エンティティの内部の値として利用されます。どちらのエンティティにも,楽観的ロック機能を実装します。

実行例を次に示します。

図M-34 JPAのサンプルプログラムの実行例

[図データ]

この画面での操作を次に示します。

  1. [ID]に従業員IDを入力して[Find]ボタンをクリックします。
    従業員情報が表示されます。
    従業員IDに指定できる値は,JPA_SAMPLE_EMPLOYEEテーブルのIDカラムに登録されているデータの1〜5です。JPA_SAMPLE_EMPLOYEEテーブルの登録データについては,「(2)(h) SQLの実行」を参照してください。なお,入力された値に該当する従業員IDがない場合は,画面にメッセージが表示されます。
  2. [Salary]に表示されている従業員給与を変更して,[Update]ボタンをクリックします。
    変更後の従業員給与がデータベースに登録されます。変更後の値が不正な場合や[Salary]に値がない場合は,次のように処理されます。
    • 変更後の値が不正な場合
      画面にメッセージが表示されます。
    • [Salary]に値がない場合
      0が入力されたと見なして処理されます。

なお,[ID]に値を入力しない状態で,[Find]ボタンまたは[Update]ボタンをクリックしても,何も処理されません。

(2) JPAのサンプルプログラムの実行手順

サンプルプログラムの実行手順を示します。

(a) J2EEサーバのセットアップ

付録M.1(1) J2EEサーバのセットアップ」を参照してください。

(b) J2EEサーバのカスタマイズ

付録M.1(2) J2EEサーバのカスタマイズ」を参照してください。

(c) J2EEサーバの起動

付録M.1(3) J2EEサーバの起動」を参照してください。

(d) リソースアダプタの設定

このサンプルプログラムはデータベースに接続するため,リソースアダプタの設定が必要です。Connector属性ファイルで,トランザクションサポートレベルに「NoTransaction」以外を設定してJTAトランザクションが利用できるようにしてください。設定方法については,「付録M.1(4) リソースアダプタの設定」を参照してください。

(e) persistence.xmlの設定

サンプルで提供するpersistence.xmlの次に示すタグを変更してください。

(f) アプリケーションのコンパイル

サンプルで提供するバッチファイル(compile.bat)を使用して,サンプルプログラムをコンパイルします。このバッチファイルで,EJB-JARファイル(employeeinfo.jar)とWARファイル(employeeinfo.war)とEARファイル(employeeinfo.ear)が作成されます。

(g) アプリケーションデプロイ

サンプルで提供するバッチファイル(deployApp.bat)を使用して,アプリケーションをデプロイします。「付録M.1(5) アプリケーションのインポート,設定,および開始」を参照してください。

(h) SQLの実行

サンプルで提供するSQLファイル(createTable_Oracle.sql,createTable_HiRDB.sql)のSQLを実行してください。SQLを実行すると,JPA_SAMPLE_EMPLOYEEテーブル,およびJPA_SAMPLE_DEPARTMENTテーブルを削除,追加します。各テーブルの構成と登録データを次に示します。

(i) アプリケーションの実行

ブラウザを起動し,URLに次の文字列を指定します。

http://<マシン名>:<ポート番号>/<ContextRoot>/EmployeeInfo.html

インプロセスHTTPサーバが使用できる場合,デフォルトでは,次のURLを指定します。

http://localhost/employee_information/EmployeeInfo.html

(j) アプリケーションのアンデプロイ

付録M.1(6) アプリケーションの停止,削除」を参照してください。

(k) J2EEサーバの終了

付録M.1(7) J2EEサーバの終了」を参照してください。

(3) O/Rマッピングファイルの使用方法

このサンプルプログラムでは,O/Rマッピングファイル(orm.xml)も提供しています。このサンプルプログラムは,アノテーションを使用するプログラムであるため,O/Rマッピングファイルは利用しません。サンプルで提供するバッチファイルを使用して,サンプルプログラムをコンパイルしてもO/RマッピングファイルはJARファイルに格納されません。

O/Rマッピングファイルを利用する場合には,次のことに注意してください。