public interface EntityManagerFactory
extends java.lang.AutoCloseable
When the application has finished using the entity manager
factory, and/or at application shutdown, the application should
close the entity manager factory. Once an
EntityManagerFactory
has been closed, all its entity managers
are considered to be in the closed state.
Modifier and Type | Method and Description |
---|---|
<T> void |
addNamedEntityGraph(java.lang.String graphName,
EntityGraph<T> entityGraph)
Add a named copy of the EntityGraph to the
EntityManagerFactory.
|
void |
addNamedQuery(java.lang.String name,
Query query)
Define the query, typed query, or stored procedure query as
a named query such that future query objects can be created
from it using the
createNamedQuery or
createNamedStoredProcedureQuery method. |
void |
close()
Close the factory, releasing any resources that it holds.
|
EntityManager |
createEntityManager()
Create a new application-managed
EntityManager . |
EntityManager |
createEntityManager(java.util.Map map)
Create a new application-managed
EntityManager with the
specified Map of properties. |
EntityManager |
createEntityManager(SynchronizationType synchronizationType)
Create a new JTA application-managed
EntityManager with the
specified synchronization type. |
EntityManager |
createEntityManager(SynchronizationType synchronizationType,
java.util.Map map)
Create a new JTA application-managed
EntityManager with the
specified synchronization type and map of properties. |
Cache |
getCache()
Access the cache that is associated with the entity manager
factory (the "second level cache").
|
CriteriaBuilder |
getCriteriaBuilder()
Return an instance of
CriteriaBuilder for the creation of
CriteriaQuery objects. |
Metamodel |
getMetamodel()
Return an instance of
Metamodel interface for access to the
metamodel of the persistence unit. |
PersistenceUnitUtil |
getPersistenceUnitUtil()
Return interface providing access to utility methods
for the persistence unit.
|
java.util.Map<java.lang.String,java.lang.Object> |
getProperties()
Get the properties and associated values that are in effect
for the entity manager factory.
|
boolean |
isOpen()
Indicates whether the factory is open.
|
<T> T |
unwrap(java.lang.Class<T> cls)
Return an object of the specified type to allow access to the
provider-specific API.
|
EntityManager createEntityManager()
EntityManager
.
This method returns a new EntityManager
instance each time
it is invoked.
The isOpen
method will return true on the returned instance.java.lang.IllegalStateException
- if the entity manager factory
has been closedEntityManager createEntityManager(java.util.Map map)
EntityManager
with the
specified Map of properties.
This method returns a new EntityManager
instance each time
it is invoked.
The isOpen
method will return true on the returned instance.map
- properties for entity managerjava.lang.IllegalStateException
- if the entity manager factory
has been closedEntityManager createEntityManager(SynchronizationType synchronizationType)
EntityManager
with the
specified synchronization type.
This method returns a new EntityManager
instance each time
it is invoked.
The isOpen
method will return true on the returned instance.synchronizationType
- how and when the entity manager should be
synchronized with the current JTA transactionjava.lang.IllegalStateException
- if the entity manager factory
has been configured for resource-local entity managers or is closedEntityManager createEntityManager(SynchronizationType synchronizationType, java.util.Map map)
EntityManager
with the
specified synchronization type and map of properties.
This method returns a new EntityManager
instance each time
it is invoked.
The isOpen
method will return true on the returned instance.synchronizationType
- how and when the entity manager should be
synchronized with the current JTA transactionmap
- properties for entity managerjava.lang.IllegalStateException
- if the entity manager factory
has been configured for resource-local entity managers or is closedCriteriaBuilder getCriteriaBuilder()
CriteriaBuilder
for the creation of
CriteriaQuery
objects.java.lang.IllegalStateException
- if the entity manager factory
has been closedMetamodel getMetamodel()
Metamodel
interface for access to the
metamodel of the persistence unit.java.lang.IllegalStateException
- if the entity manager factory
has been closedboolean isOpen()
void close()
IllegalStateException
, except
for isOpen
, which will return false. Once an
EntityManagerFactory
has been closed, all its
entity managers are considered to be in the closed state.close
in interface java.lang.AutoCloseable
java.lang.IllegalStateException
- if the entity manager factory
has been closedjava.util.Map<java.lang.String,java.lang.Object> getProperties()
java.lang.IllegalStateException
- if the entity manager factory
has been closedCache getCache()
Cache
interface or null if
no cache is in usejava.lang.IllegalStateException
- if the entity manager factory
has been closedPersistenceUnitUtil getPersistenceUnitUtil()
PersistenceUnitUtil
interfacejava.lang.IllegalStateException
- if the entity manager factory
has been closedvoid addNamedQuery(java.lang.String name, Query query)
createNamedQuery
or
createNamedStoredProcedureQuery
method.
Any configuration of the query object (except for actual parameter binding) in effect when the named query is added is retained as part of the named query definition. This includes configuration information such as max results, hints, flush mode, lock mode, result set mapping information, and information about stored procedure parameters.
When the query is executed, information that can be set
by means of the query APIs can be overridden. Information
that is overridden does not affect the named query as
registered with the entity manager factory, and thus does
not affect subsequent query objects created from it by
means of the createNamedQuery
or
createNamedStoredProcedureQuery
method.
If a named query of the same name has been previously defined, either statically via metadata or via this method, that query definition is replaced.
name
- name for the queryquery
- Query, TypedQuery, or StoredProcedureQuery object<T> T unwrap(java.lang.Class<T> cls)
cls
- the class of the object to be returned. This is
normally either the underlying EntityManagerFactory
implementation class or an interface that it implements.PersistenceException
- if the provider does not
support the call<T> void addNamedEntityGraph(java.lang.String graphName, EntityGraph<T> entityGraph)
graphName
- name for the entity graphentityGraph
- entity graph