EJBの作成

Enterprise JavaBeans? (EJB) はJava EEの中核で、アプリケーションサーバー等のEJBコンテナで管理・実行される。
EJBは外部のサーバー等からのリモート呼び出し機能を備える。(今回は同じサーバー内でのみ使用する)

JPAでデータの操作を行うSession Beanを作成する。Session Beanとはロジックの処理を行うEJBである。
EJBにはSession Beanの他にEntity Bean(現在は非推奨)やMessage-Driven Beanがある。

ファイル→新規ファイルからEJBを作成する。
プロジェクトに-ejbの名前のプロジェクトを選び、カテゴリ:エンタープライズJavaBeans?のファイル・タイプ:セッションBeanを選択し、次へ。

#ref(): File not found: "ejb1.gif" at page "EJBの作成"


EJBの名前とパッケージ名を入力し、終了。

セッションのタイプは次の通りである。
ステートレス:状態を持たない。使い終わったインスタンスを使いまわす。
ステートフル:状態を持ち、各インスタンスはクライアントと1対1である。
シングルトン:インスタンスはアプリケーションに1つ。

インターフェースのタイプは次の通りである。
ローカル:このアプリケーションからEJBを呼び出すインターフェースを作成する。(なくても可)
リモート:別のアプリケーションからEJBをリモート呼び出しをするためのインターフェースを作成する。

#ref(): File not found: "ejb2.gif" at page "EJBの作成"


ソースコードの枠が自動生成される。
ステートレスBeanを表すアノテーション@Statelessが付加されている。
また、このクラスがローカルからインターフェースを経由せず利用できることを表す@LocalBean?が付加されている。(@Localも@Remoteも使用しない場合は省略可)

#ref(): File not found: "ejb3.gif" at page "EJBの作成"


JPAを使用してDBにアクセスするコードを入力する。
EntityManager?はDBへのアクセス機能を提供するクラスである。
EntityManager?型のフィールドに@PersistenceContext?アノテーションを付加しておくと、コンテナによってインスタンスを自動的に注入される。
unitNameに以前作成した、永続ユニット名EnterpriseApplication?-ejbPUを指定する。

readMessagesメソッド
まず、EntityManager?のcreateNamedQuery?メソッドで以前@NamedQuery?アノテーションで定義したクエリを取得する。
第1引数はクエリ名、第2引数はクエリ結果のクラスである。
次に、クエリの実行結果を取得する。

writeMessageメソッド
EntityManager?のpersistメソッドでデータをDBに挿入する。(永続化という)

トランザクションの処理はコンテナが自動的に行う。

#ref(): File not found: "ejb4.gif" at page "EJBの作成"


コメント



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS