public boolean isOpen (); public void close ();
EntityManagerFactory instances are
heavyweight objects. Each factory might maintain a metadata cache,
object state cache, EntityManager pool,
connection pool, and more. If your application no longer needs an
EntityManagerFactory, you should close it
to free these resources. When an EntityManagerFactory
closes, all EntityManagers
from that factory, and by extension all entities managed
by those EntityManagers, become invalid.
Attempting to close an EntityManagerFactory
while one or more of its EntityManagers
has an active transaction may result in an
IllegalStateException.
Closing an EntityManagerFactory should not
be taken lightly. It is much better to keep a factory open for a long
period of time than to repeatedly create and close new factories. Thus,
most applications will never close the factory, or only close it when
the application is exiting. Only applications that require multiple
factories with different configurations have an obvious reason to
create and close multiple EntityManagerFactory
instances. Once a factory is closed, all methods except
isOpen throw an
IllegalStateException.