5.10.2 javax.persistence.EntityManagerFactoryインタフェース

ここでは,javax.persistence.EntityManagerFactoryインタフェースについてインタフェース定義と注事事項を説明します。

<この項の構成>
(1) インタフェース定義
(2) 注意事項

(1) インタフェース定義

package javax.persistence;

/**
* EntityManagerFactoryインタフェースは,
* アプリケーションがアプリケーション管理のEntityManagerを取得するために
* 使用します。
* アプリケーションがEntityManagerFactoryの使用を終了する時には,
* アプリケーションはEntityManagerFactoryをクローズする必要があります。
* EntityManagerFactoryがクローズされたあとは,
* EntityManagerFactoryから作成したすべてのEntityManagerはクローズされた
* ものとして扱われます。
*/
public interface EntityManagerFactory {
 /**
 * 新しいEntityManagerを作成します。
 * このメソッドは,呼び出されるたびに新しいEntityManagerのインスタンスを
 * 返します。
 * このメソッドが返すEntityManagerのisOpenメソッドはtrueを返します。
 * @return 新しいEntityManager
 */
 public EntityManager createEntityManager();
 
 /**
 * 指定したプロパティのマップを使用して新しいEntityManagerを作成します。
 * このメソッドは,呼び出されるたびに新しいEntityManagerのインスタンスを
 * 返します。
 * このメソッドが返すEntityManagerのisOpenメソッドはtrueを返します。
 * @param map EntityManagerのプロパティを格納したMap
 * @return 新しいEntityManager
 */
 public EntityManager createEntityManager(Map map);
 
 /**
 * ファクトリをクローズし,ファクトリが保持しているすべてのリソースを
 * 解放します。
 * ファクトリがクローズされたあとは,isOpen以外のメソッドを呼び出すと,
 * IllegalStateExceptionがスローされます。isOpenメソッドは,falseを
 * 返します。
 * EntityManagerFactoryがクローズされると,ファクトリから作成した
 * すべてのEntityManagerも,クローズされたものとして扱われます。
 */
 public void close();
 
 /**
 * ファクトリがオープンしているかどうかを返します。
 * @return ファクトリがクローズされるまではtrue
 */
 public boolean isOpen();

}

(2) 注意事項