JPA-アーキテクチャ
Java Persistence APIは、ビジネスエンティティをリレーショナルエンティティとして格納するためのソースです。PLAIN OLD JAVA OBJECT(POJO)をエンティティとして定義する方法と、リレーションを持つエンティティを管理する方法を示します。
クラスレベルのアーキテクチャ
次の画像は、JPAのクラスレベルのアーキテクチャを示しています。JPAのコアクラスとインターフェースを示しています。
次の表で、上記のアーキテクチャに示されている各ユニットについて説明します。
単位 | 説明 |
---|---|
EntityManagerFactory | これは、EntityManagerのファクトリクラスです。複数のEntityManagerインスタンスを作成および管理します。 |
EntityManager | これはインターフェースであり、オブジェクトの永続化操作を管理します。クエリインスタンスのファクトリのように機能します。 |
Entity | エンティティは永続オブジェクトであり、データベースにレコードとして格納されます。 |
EntityTransaction | EntityManagerと1対1の関係にあります。EntityManagerごとに、操作はEntityTransactionクラスによって維持されます。 |
Persistence | このクラスには、EntityManagerFactoryインスタンスを取得するための静的メソッドが含まれています。 |
Query | このインターフェースは、基準を満たすリレーショナルオブジェクトを取得するために、各JPAベンダーによって実装されます。 |
上記のクラスとインターフェースは、エンティティをレコードとしてデータベースに格納するために使用されます。これらは、データベースにデータを格納するためのコードを作成する労力を削減することでプログラマーを支援し、クラスをデータベーステーブルにマッピングするためのコードの作成などのより重要なアクティビティに集中できるようにします。
JPAクラスの関係
上記のアーキテクチャでは、クラスとインターフェース間の関係はjavax.persistenceパッケージに属しています。次の図は、それらの関係を示しています。
EntityManagerFactoryとEntityManagerの関係は次のとおりです。 one-to-many。これは、EntityManagerインスタンスのファクトリクラスです。
EntityManagerとEntityTransactionの関係は one-to-one。EntityManager操作ごとに、EntityTransactionインスタンスがあります。
EntityManagerとクエリの関係は one-to-many。1つのEntityManagerインスタンスを使用して、多数のクエリを実行できます。
EntityManagerとEntityの関係は one-to-many。1つのEntityManagerインスタンスで複数のエンティティを管理できます。