Ejb-entity-relationships
提供:Dev Guides
EJB-エンティティの関係
EJB 3.0は、1対1、1対多、多対1、多対多などのデータベースエンティティの関係/マッピングを定義するオプションを提供します。
以下は関連する注釈です-
- 1対1 -オブジェクトには1対1の関係があります。 たとえば、乗客は一度に1つのチケットを使用して旅行できます。
- * 1対多*-オブジェクトには1対多の関係があります。 たとえば、父親は複数の子供を持つことができます。
- 多対一-オブジェクトには多対1の関係があります。 たとえば、シングルマザーを持つ複数の子供。
- 多対多-オブジェクトには多対多の関係があります。 たとえば、本には複数の著者がいて、著者は複数の本を書くことができます。
ここでは、ManyToManyマッピングの使用方法を示します。 ManyToMany関係を表すには、次の3つの表が必要です-
- Book -書籍の記録がある書籍テーブル。
- Author -著者のレコードを持つ著者テーブル。
- Book_Author -上記のBookとAuthorテーブルのリンクを持つBook Authorテーブル。
テーブルを作成する
デフォルトのデータベース postgres にテーブル book author 、 book_author を作成します。
エンティティクラスを作成する
Book EntityでManyToManyアノテーションを使用します。
応用例
EJB 3.0でエンティティ関係オブジェクトをテストするテストEJBアプリケーションを作成しましょう。
Step | Description |
---|---|
1 | Create a project with a name EjbComponent under a package com.finddevguides.entity as explained in the EJB - Create Application chapter. Please use the project created in EJB - Persistence chapter as such for this chapter to understand embedded objects in EJB concepts. |
2 | Create Author.java under package com.finddevguides.entity as explained in the EJB - Create Application chapter. Keep rest of the files unchanged. |
3 | Create Book.java under package com.finddevguides.entity. Use EJB - Persistence chapter as reference. Keep rest of the files unchanged. |
4 | Clean and Build the application to make sure business logic is working as per the requirements. |
5 | Finally, deploy the application in the form of jar file on JBoss Application Server. JBoss Application server will get started automatically if it is not started yet. |
6 | Now create the EJB client, a console based application in the same way as explained in the EJB - Create Application chapter under topic Create Client to access EJB. |
EJBComponent(EJBモジュール)
Author.java
Book.java
LibraryPersistentBeanRemote.java
LibraryPersistentBean.java
- EjbComponentプロジェクトをJBOSSにデプロイするとすぐに、jbossログに注目してください。
- JBossは、セッションBeanのJNDIエントリを自動的に作成しました- LibraryPersistentBean/remote 。
- このルックアップ文字列を使用して、タイプのリモートビジネスオブジェクトを取得します- com.finddevguides.interceptor.LibraryPersistentBeanRemote
JBoss Application Serverのログ出力
EJBTester(EJBクライアント)
jndi.properties
- これらのプロパティは、JavaネームサービスのInitialContextオブジェクトを初期化するために使用されます。
- InitialContextオブジェクトは、ステートレスセッションBeanのルックアップに使用されます。
EJBTester.java
EJBTesterは次のタスクを実行します-
- jndi.propertiesからプロパティをロードし、InitialContextオブジェクトを初期化します。
- testInterceptedEjb()メソッドでは、jndiルックアップが名前-"LibraryPersistenceBean/remote"で実行され、リモートビジネスオブジェクト(ステートレスEJB)が取得されます。
- 次に、ユーザーにライブラリストアのユーザーインターフェイスが表示され、選択肢を入力するように求められます。
- ユーザーが1を入力すると、システムはブック名を要求し、ステートレスセッションBeanのaddBook()メソッドを使用してブックを保存します。 セッションBeanはデータベースに本を保存しています。
- ユーザーが2を入力すると、システムはステートレスセッションBeanのgetBooks()メソッドを使用して本を取得し、終了します。
クライアントを実行してEJBにアクセスする
プロジェクトエクスプローラーでEJBTester.javaを見つけます。 EJBTesterクラスを右クリックして、 run file を選択します。
Netbeansコンソールで次の出力を確認します。