ここでは,javax.persistence.EntityManagerFactoryインタフェースについてインタフェース定義と注事事項を説明します。
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();
}