Jpa-entity-managers
JPA-エンティティマネージャー
この章では、JPAを使用した簡単な例を紹介します。 例として従業員管理を考えてみましょう。 これは、従業員管理が従業員を作成、更新、検索、削除していることを意味します。 上記のように、データベース操作にMySQLデータベースを使用しています。
この例の主なモジュールは次のとおりです。
- *モデルまたはPOJO * + Employee.java
- 永続性 + Persistence.xml
- サービス + CreatingEmployee.java + UpdatingEmployee.java + FindingEmployee.java + EditingEmployee.java
Eclipselinkを使用したJPAインストールで使用したパッケージ階層を見てみましょう。 次のように、この例の階層に従います。
エンティティの作成
エンティティはBeanまたはモデルに他なりません。この例では、エンティティとして Employee を使用します。 * eid、ename、salary、、および *deg は、このエンティティの属性です。 これらの属性のデフォルトのコンストラクタ、セッター、およびゲッターメソッドが含まれています。
上記の階層で、 ‘src’ (ソース)パッケージの下に ‘com.finddevguides.eclipselink.entity’ という名前のパッケージを作成します。 次のように、指定されたパッケージの下に Employee.java という名前のクラスを作成します。
上記のコードでは、@ Entityアノテーションを使用して、このPOJOクラスをエンティティとして作成しています。
次のモジュールに進む前に、リレーショナルエンティティ用のデータベースを作成する必要があります。これにより、データベースが persistence.xml ファイルに登録されます。 MySQLワークベンチを開き、次のようにクエリを入力します。
Persistence.xml
このモジュールは、JPAの概念で重要な役割を果たします。 このxmlファイルでは、データベースを登録し、エンティティクラスを指定します。
上記のパッケージ階層では、JPAコンテンツパッケージのpersistence.xmlは次のとおりです。
上記のxmlでは、<persistence-unit>タグがJPA永続性の特定の名前で定義されています。 <class>タグは、パッケージ名でエンティティクラスを定義します。 <properties>タグはすべてのプロパティを定義し、<property>タグはデータベース登録、URL指定、ユーザー名、パスワードなどの各プロパティを定義します。 これらはEclipselinkプロパティです。 このファイルはデータベースを構成します。
永続化操作
永続化操作はデータベースに対して使用され、 load および store 操作です。 ビジネスコンポーネントでは、すべての永続化操作がサービスクラスに分類されます。
上記のパッケージ階層で、 ‘src’ (ソース)パッケージの下に ‘com.finddevguides.eclipselink.service’ という名前のパッケージを作成します。 CreateEmloyee.java、UpdateEmployee.java、FindEmployee.java、DeleteEmployee.javaという名前のすべてのサービスクラス。 次のように、指定されたパッケージの下にあります。
従業員を作成
次のように、 CreateEmployee.java という名前のEmployeeクラスを作成します。
上記のコードでは、* createEntityManagerFactory()は、persistence.xmlファイルでpersistence-unitに指定したものと同じ一意の名前を提供することにより、永続性ユニットを作成します。 entitymanagerfactoryオブジェクトは、 createEntityManager()*メソッドを使用してentitymangerインスタンスを作成します。 entitymanagerオブジェクトは、トランザクション管理用のentitytransactionインスタンスを作成します。 entitymanagerオブジェクトを使用することにより、エンティティをデータベースに永続化できます。
上記のプログラムをコンパイルして実行すると、Eclipse IDEのコンソールパネルにあるeclipselinkライブラリから通知を受け取ります。
結果として、MySQLワークベンチを開き、次のクエリを入力します。
Eid | Ename | Salary | Deg |
---|---|---|---|
1201 | Gopal | 40000 | Technical Manager |
従業員を更新
従業員を更新するには、レコードフォームデータベースを取得し、変更を加えて、最終的にコミットする必要があります。 UpdateEmployee.java という名前のクラスは次のように表示されます。
上記のプログラムをコンパイルして実行すると、Eclipse IDEのコンソールパネルのEclipselinkライブラリから通知を受け取ります。
結果として、MySQLワークベンチを開き、次のクエリを入力します。
Eid | Ename | Salary | Deg |
---|---|---|---|
1201 | Gopal | 46000 | Technical Manager |
従業員の給与1201は46000に更新されます。
従業員を探す
従業員を見つけるには、データベースからレコードを取得して表示します。 この操作では、EntityTransactionは関与せず、レコードの取得中にトランザクションは適用されません。
次のような FindEmployee.java という名前のクラス。
上記のプログラムをコンパイルして実行すると、次のようにEclipse IDEのコンソールパネルにあるEclipselinkライブラリから出力が得られます。
従業員の削除
従業員を削除するには、最初にレコードを見つけてから削除します。 ここで、EntityTransactionは重要な役割を果たします。
次のような DeleteEmployee.java という名前のクラス:
上記のプログラムをコンパイルして実行すると、Eclipse IDEのコンソールパネルのEclipselinkライブラリから通知を受け取ります。
結果として、MySQLワークベンチを開き、次のクエリを入力します。
この例のすべてのモジュールが完了すると、パッケージとファイルの階層が次のように表示されます。