All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.persistence.EntityManagerFactory Maven / Gradle / Ivy

Go to download

The Java Persistence API (JPA) : a standard interface-based Java model abstraction of persistence, developed by the JCP.

There is a newer version: 2.2.4
Show newest version
/*
 * Copyright (c) 2008, 2009, 2011 Oracle, Inc. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
 * which accompanies this distribution.  The Eclipse Public License is available
 * at http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution License
 * is available at http://www.eclipse.org/org/documents/edl-v10.php.
 */
package javax.persistence;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.metamodel.Metamodel;
import java.util.Map;

/**
 * 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 */ public interface EntityManagerFactory { /** * 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. * @return entity manager instance * @throws IllegalStateException if the entity manager factory has been closed */ public EntityManager createEntityManager(); /** * 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. * @param map properties for entity manager * @return entity manager instance * @throws IllegalStateException if the entity manager factory has been closed */ public EntityManager createEntityManager(Map map); /** * 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. * @param synchronizationType how and when the entity manager should be synchronized with the current JTA * transaction * @return entity manager instance * @throws IllegalStateException if the entity manager factory has been configured for resource-local * entity managers or has been closed */ public EntityManager createEntityManager(SynchronizationType synchronizationType); /** * 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. * @param synchronizationType how and when the entity manager should be synchronized with the current JTA * transaction * @param map properties for entity manager; may be null * @return entity manager instance * @throws IllegalStateException if the entity manager factory has been configured for resource-local * entity managers or has been closed */ public EntityManager createEntityManager(SynchronizationType synchronizationType, Map map); /** * Return an instance of CriteriaBuilder for the creation of CriteriaQuery * objects. * @return CriteriaBuilder instance * @throws IllegalStateException if the entity manager factory has been closed * @since Java Persistence 2.0 */ public CriteriaBuilder getCriteriaBuilder(); /** * Return an instance of Metamodel interface for access to the metamodel of the persistence * unit. * @return Metamodel instance * @throws IllegalStateException if the entity manager factory has been closed * @since Java Persistence 2.0 */ public Metamodel getMetamodel(); /** * Indicates whether the factory is open. Returns true until the factory has been closed. * @return boolean indicating whether the factory is open */ public boolean isOpen(); /** * 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 */ public void close(); /** * 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. * @return properties * @throws IllegalStateException if the entity manager factory has been closed * @since Java Persistence 2.0 */ public Map getProperties(); /** * Access the cache that is associated with the entity manager factory (the "second level cache"). * @return instance of the Cache interface * @throws IllegalStateException if the entity manager factory has been closed * @since Java Persistence 2.0 */ public Cache getCache(); /** * Return interface providing access to utility methods for the persistence unit. * @return PersistenceUnitUtil interface * @throws IllegalStateException if the entity manager factory has been closed * @since Java Persistence 2.0 */ public PersistenceUnitUtil getPersistenceUnitUtil(); /** * 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 methods. 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 API 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 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. * @param name name for the query * @param query Query, TypedQuery, or StoredProcedureQuery object * @since Java Persistence 2.1 */ public void addNamedQuery(String name, Query query); /** * 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. * @param cls the class of the object to be returned. This is normally either the underlying * EntityManagerFactory implementation class or an interface that it implements. * @return an instance of the specified class * @param type * @throws PersistenceException if the provider does not support the call */ public T unwrap(Class cls); /** * Add a named copy of the EntityGraph to the EntityManagerFactory. If an entity graph with the same name * already exists, it is replaced. * @param graphName name for the entity graph * @param entityGraph entity graph * @param type * @since JPA 2.1 */ public void addNamedEntityGraph(String graphName, EntityGraph entityGraph); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy