javax.persistence

## Interface EntityManagerFactory

-     public interface EntityManagerFactory

  Interface used to interact with the entity manager factory for the persistence unit.

  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.

  Since:
    Java Persistence 1.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> void` | `addNamedEntityGraph(String graphName, EntityGraph<T> entityGraph)` Add a named copy of the EntityGraph to the EntityManagerFactory.
    `void` | `addNamedQuery(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(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, 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.
    `Map<String,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(Class<T> cls)` Return an object of the specified type to allow access to the provider-specific API.

- - ### Method Detail

    - #### createEntityManager

          EntityManager createEntityManager()

      Create a new application-managed `EntityManager`. This method returns a new `EntityManager` instance each time it is invoked. The `isOpen` method will return true on the returned instance.
      Returns:
        entity manager instance
      Throws:
        `IllegalStateException` - if the entity manager factory has been closed

    - #### createEntityManager

          EntityManager createEntityManager(Map map)

      Create a new application-managed `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.
      Parameters:
        `map` - properties for entity manager
      Returns:
        entity manager instance
      Throws:
        `IllegalStateException` - if the entity manager factory has been closed

    - #### createEntityManager

          EntityManager createEntityManager(SynchronizationType synchronizationType)

      Create a new JTA application-managed `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.
      Parameters:
        `synchronizationType` - how and when the entity manager should be synchronized with the current JTA transaction
      Returns:
        entity manager instance
      Throws:
        `IllegalStateException` - if the entity manager factory has been configured for resource-local entity managers or is closed
      Since:
        Java Persistence 2.1

    - #### createEntityManager

          EntityManager createEntityManager(SynchronizationType synchronizationType,
                                          Map map)

      Create a new JTA application-managed `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.
      Parameters:
        `synchronizationType` - how and when the entity manager should be synchronized with the current JTA transaction
        `map` - properties for entity manager
      Returns:
        entity manager instance
      Throws:
        `IllegalStateException` - if the entity manager factory has been configured for resource-local entity managers or is closed
      Since:
        Java Persistence 2.1

    - #### getCriteriaBuilder

          CriteriaBuilder getCriteriaBuilder()

      Return an instance of `CriteriaBuilder` for the creation of `CriteriaQuery` objects.
      Returns:
        CriteriaBuilder instance
      Throws:
        `IllegalStateException` - if the entity manager factory has been closed
      Since:
        Java Persistence 2.0

    - #### getMetamodel

          Metamodel getMetamodel()

      Return an instance of `Metamodel` interface for access to the metamodel of the persistence unit.
      Returns:
        Metamodel instance
      Throws:
        `IllegalStateException` - if the entity manager factory has been closed
      Since:
        Java Persistence 2.0

    - #### isOpen

          boolean isOpen()

      Indicates whether the factory is open. Returns true until the factory has been closed.
      Returns:
        boolean indicating whether the factory is open

    - #### close

          void close()

      Close the factory, releasing any resources that it holds. After a factory instance has been closed, all methods invoked on it will throw the `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.
      Throws:
        `IllegalStateException` - if the entity manager factory has been closed

    - #### getProperties

          Map<String,Object> getProperties()

      Get the properties and associated values that are in effect for the entity manager factory. Changing the contents of the map does not change the configuration in effect.
      Returns:
        properties
      Throws:
        `IllegalStateException` - if the entity manager factory has been closed
      Since:
        Java Persistence 2.0

    - #### getCache

          Cache getCache()

      Access the cache that is associated with the entity manager factory (the "second level cache").
      Returns:
        instance of the `Cache` interface or null if no cache is in use
      Throws:
        `IllegalStateException` - if the entity manager factory has been closed
      Since:
        Java Persistence 2.0

    - #### getPersistenceUnitUtil

          PersistenceUnitUtil getPersistenceUnitUtil()

      Return interface providing access to utility methods for the persistence unit.
      Returns:
        `PersistenceUnitUtil` interface
      Throws:
        `IllegalStateException` - if the entity manager factory has been closed
      Since:
        Java Persistence 2.0

    - #### addNamedQuery

          void addNamedQuery(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.

      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.

      Parameters:
        `name` - name for the query
        `query` - Query, TypedQuery, or StoredProcedureQuery object
      Since:
        Java Persistence 2.1

    - #### unwrap

          <T> T unwrap(Class<T> cls)

      Return an object of the specified type to allow access to the provider-specific API. If the provider's EntityManagerFactory implementation does not support the specified class, the PersistenceException is thrown.
      Parameters:
        `cls` - the class of the object to be returned. This is normally either the underlying EntityManagerFactory implementation class or an interface that it implements.
      Returns:
        an instance of the specified class
      Throws:
        `PersistenceException` - if the provider does not support the call
      Since:
        Java Persistence 2.1

    - #### addNamedEntityGraph

          <T> void addNamedEntityGraph(String graphName,
                                     EntityGraph<T> entityGraph)

      Add a named copy of the EntityGraph to the EntityManagerFactory. If an entity graph with the same name already exists, it is replaced.
      Parameters:
        `graphName` - name for the entity graph
        `entityGraph` - entity graph
      Since:
        Java Persistence 2.1

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.