読者です 読者をやめる 読者になる 読者になる

ひこぽんのーと

覚書と雑記です。

JavaEE 7をやってみよう。 JPA その6

JavaEEをやってみよう プログラム

その5のつづき。

動作確認のためのEJB作りとなる。
WebアプリでなくてもJPAは使えるらしいけど、
せっかくJavaEEをやってるのだから、EJBを使っておこう、
というノリにしておこう。

EJBプロジェクトは、平たく言うとビジネスロジックを記述する層という認識で、
今回のようにDB参照して一覧取得を行う、とか、入力内容をDBに格納する、とか、
そのような処理をまとめとく印象。

EJBクラスの種類には大きくセッションBeanとメッセージBeanってのがあるらしく、
違いとしては前者はセッション同期、後者は非同期ってな感じらしい。
詳しくはOracleのサイトを見ると良いのかも。

blogs.oracle.com

というわけで、
先に作ったJPAプロジェクトのエンティティクラスを用いてDB参照を行うビジネスロジック
EJBで作ってみる。

1. セッションBean作成
新規から「その他」を選び、
ウィザードから「EJB」→「セッションBean (EJB 3.x)」を選ぶ。
f:id:nagamitsu1976:20151002152321p:plain
2. Bean本体とインターフェースの作成
パッケージ名とクラス名を入力する。EJBを呼び出す側が使用するインターフェースが必要なのでビジネスインターフェースの作成も有効にする。
リモートとローカルがあるのだが、とりあえず、ローカルのみとする。*1f:id:nagamitsu1976:20151002155848p:plain
f:id:nagamitsu1976:20151002160436p:plain
3. 完了
完了ボタンを押すとクラスとインターフェースが自動生成される。
f:id:nagamitsu1976:20151002160543p:plain
4. メソッド追加
コンストラクタ以外にメソッド一つもないので、
ここに機能としてWarshipテーブルから全レコード取得するメソッド定義する。
ローカルインタフェースを開いてメソッドを追加する。
f:id:nagamitsu1976:20151002161114p:plain
5. メソッド実装
インターフェースに追加したメソッドを実装する。
Eclipseではエラーから簡単にスタブが実装できるので楽だね。
f:id:nagamitsu1976:20151002162424p:plain

といった具合に外枠だけは埋まった。
あとはDB参照を実装すればOK。

エンティティ呼び出しの実装は次回に続く。

*1:アプリケーションサーバで稼働する場合はローカル、別アプリケーションサーバで稼働しているモジュールを呼ぶ場合はリモートとなるらしい。参照:ローカルインタフェースとリモートインタフェースの使用