JavaEE 7をやってみよう。 JPA その6
その5のつづき。
動作確認のためのEJB作りとなる。
WebアプリでなくてもJPAは使えるらしいけど、
せっかくJavaEEをやってるのだから、EJBを使っておこう、
というノリにしておこう。
EJBプロジェクトは、平たく言うとビジネスロジックを記述する層という認識で、
今回のようにDB参照して一覧取得を行う、とか、入力内容をDBに格納する、とか、
そのような処理をまとめとく印象。
EJBクラスの種類には大きくセッションBeanとメッセージBeanってのがあるらしく、
違いとしては前者はセッション同期、後者は非同期ってな感じらしい。
詳しくはOracleのサイトを見ると良いのかも。
というわけで、
先に作ったJPAプロジェクトのエンティティクラスを用いてDB参照を行うビジネスロジックを
EJBで作ってみる。
- 1. セッションBean作成
- 新規から「その他」を選び、
ウィザードから「EJB」→「セッションBean (EJB 3.x)」を選ぶ。 - 2. Bean本体とインターフェースの作成
- パッケージ名とクラス名を入力する。EJBを呼び出す側が使用するインターフェースが必要なのでビジネスインターフェースの作成も有効にする。
リモートとローカルがあるのだが、とりあえず、ローカルのみとする。*1 - 3. 完了
- 完了ボタンを押すとクラスとインターフェースが自動生成される。
- 4. メソッド追加
- コンストラクタ以外にメソッド一つもないので、
ここに機能としてWarshipテーブルから全レコード取得するメソッド定義する。
ローカルインタフェースを開いてメソッドを追加する。 - 5. メソッド実装
- インターフェースに追加したメソッドを実装する。
Eclipseではエラーから簡単にスタブが実装できるので楽だね。
といった具合に外枠だけは埋まった。
あとはDB参照を実装すればOK。
エンティティ呼び出しの実装は次回に続く。
*1:同アプリケーションサーバで稼働する場合はローカル、別アプリケーションサーバで稼働しているモジュールを呼ぶ場合はリモートとなるらしい。参照:ローカルインタフェースとリモートインタフェースの使用