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インスタンスで複数のエンティティを管理できます。