Red Hat Training

A Red Hat training course is available for Red Hat JBoss Web Server

3.3. Java SE 環境での EntityManager の取得

エンティティマネージャファクトリは、変更不可の設定ホルダーと見なす必要があります。単一のデータソースを参照し、定義された一連のエンティティをマップするよう定義されます。これは、EntityManager を作成および管理するエンティティポイントです。Persistence クラスはエンティティマネージャファクトリを作成するブートストラップクラスです。
// Use persistence.xml configuration
EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1");
EntityManager em = emf.createEntityManager(); // Retrieve an application managed entity manager
// Work with the EM
em.close();
...
emf.close(); //close at application end
エンティティマネージャファクトリは通常アプリケーション初期化時に作成され、アプリケーション終了時に閉じられます。この作成はコストがかかるプロセスです。Hibernate の使用経験があるユーザーにとっては、エンティティマネージャファクトリはセッションファクトリに非常に似ています。実際には、エンティティマネージャファクトリはセッションファクトリの上部のラッパーです。entityManagerFactory への呼出は、スレッドセーフです。
EntityManagerFactory により、拡張されたエンティティマネージャを取得できます。拡張されたエンティティマネージャはエンティティマネージャのライフタイムの間、同じ永続コンテキストを保持します。つまり、エンティティは 2 つのトランザクション間で管理されます (間に entityManager.clear() を呼び出さない限り)。エンティティマネージャは Hibernate セッション上部の小さなラッパーと見なすことができます。