5.4.2 EntityManagerの種類
EntityManagerの種類には,コンテナ管理のEntityManagerおよびアプリケーション管理のEntityManagerの2種類があります。それぞれ説明します。
(1) コンテナ管理のEntityManager
EntityManagerの作成や破棄をコンテナに任せる方法です。コンテナ管理のEntityManagerを使用すると,EntityManagerの生成や破棄を意識しないでアプリケーションをコーディングできます。コンテナ管理のEntityManagerを取得する方法と破棄する方法を説明します。
-
取得する方法
コンテナ管理のEntityManagerを取得するには,アプリケーションでDIまたはJNDIルックアップを使用します。この方法で取得するEntityManagerは,コンテナによって作成されたEntityManagerです。アプリケーションのコードでは,コンテナから取得したEntityManagerをそのまま使うことができます。
なお,アプリケーションからコンテナ管理のEntityManagerを取得する方法については,「5.6 コンテナ管理のEntityManagerを取得する方法」を参照してください。
-
破棄する方法
アプリケーション内で,EntityManagerの作成や破棄をコーディングする必要はありません。
(2) アプリケーション管理のEntityManager
EntityManagerの作成や破棄をアプリケーションが明示的に行う方法です。アプリケーションのコードによって明示的にライフサイクルが管理されます。アプリケーション管理のEntityManagerを取得する方法と破棄する方法を説明します。
-
取得する方法
EntityManagerFactoryを使用して,アプリケーションでEntityManagerを作成します。EntityManagerFactoryを取得するには,アプリケーションでDIまたはJNDIルックアップを使用します。
なお,アプリケーション管理のEntityManagerを取得する方法については,「5.7 アプリケーション管理のEntityManagerを取得する方法」を参照してください。
-
破棄する方法
EntityManagerのcloseメソッドを呼んで,EntityManagerを破棄します。