Package org.springframework.orm.jpa
Class EntityManagerFactoryAccessor
java.lang.Object
org.springframework.orm.jpa.EntityManagerFactoryAccessor
- All Implemented Interfaces:
Aware
,BeanFactoryAware
- Direct Known Subclasses:
OpenEntityManagerInViewInterceptor
,SharedEntityManagerBean
Base class for any class that needs to access a JPA
EntityManagerFactory
,
usually in order to obtain a JPA EntityManager
. Defines common properties.- Since:
- 2.0
- Author:
- Juergen Hoeller
- See Also:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected EntityManager
Obtain a new EntityManager from this accessor's EntityManagerFactory.Return the JPA EntityManagerFactory that should be used to create EntityManagers.AllowMap
access to the JPA properties to be passed to the persistence provider, with the option to add or override specific entries.Return the name of the persistence unit to access the EntityManagerFactory for, if any.protected EntityManager
Obtain the transactional EntityManager for this accessor's EntityManagerFactory, if any.protected final EntityManagerFactory
Obtain the EntityManagerFactory for actual use.void
setBeanFactory
(BeanFactory beanFactory) Retrieves an EntityManagerFactory by persistence unit name, if none set explicitly.void
Set the JPA EntityManagerFactory that should be used to create EntityManagers.void
setJpaProperties
(Properties jpaProperties) Specify JPA properties, to be passed intoEntityManagerFactory.createEntityManager(Map)
(if any).void
setJpaPropertyMap
(Map<String, Object> jpaProperties) Specify JPA properties as a Map, to be passed intoEntityManagerFactory.createEntityManager(Map)
(if any).void
setPersistenceUnitName
(String persistenceUnitName) Set the name of the persistence unit to access the EntityManagerFactory for.
-
Field Details
-
logger
Logger available to subclasses.
-
-
Constructor Details
-
EntityManagerFactoryAccessor
public EntityManagerFactoryAccessor()
-
-
Method Details
-
setEntityManagerFactory
Set the JPA EntityManagerFactory that should be used to create EntityManagers. -
getEntityManagerFactory
Return the JPA EntityManagerFactory that should be used to create EntityManagers. -
obtainEntityManagerFactory
Obtain the EntityManagerFactory for actual use.- Returns:
- the EntityManagerFactory (never
null
) - Throws:
IllegalStateException
- in case of no EntityManagerFactory set- Since:
- 5.0
-
setPersistenceUnitName
Set the name of the persistence unit to access the EntityManagerFactory for.This is an alternative to specifying the EntityManagerFactory by direct reference, resolving it by its persistence unit name instead. If no EntityManagerFactory and no persistence unit name have been specified, a default EntityManagerFactory will be retrieved through finding a single unique bean of type EntityManagerFactory.
-
getPersistenceUnitName
Return the name of the persistence unit to access the EntityManagerFactory for, if any. -
setJpaProperties
Specify JPA properties, to be passed intoEntityManagerFactory.createEntityManager(Map)
(if any).Can be populated with a String "value" (parsed via PropertiesEditor) or a "props" element in XML bean definitions.
-
setJpaPropertyMap
Specify JPA properties as a Map, to be passed intoEntityManagerFactory.createEntityManager(Map)
(if any).Can be populated with a "map" or "props" element in XML bean definitions.
-
getJpaPropertyMap
AllowMap
access to the JPA properties to be passed to the persistence provider, with the option to add or override specific entries.Useful for specifying entries directly, for example via
jpaPropertyMap[myKey]
. -
setBeanFactory
Retrieves an EntityManagerFactory by persistence unit name, if none set explicitly. Falls back to a default EntityManagerFactory bean if no persistence unit specified.- Specified by:
setBeanFactory
in interfaceBeanFactoryAware
- Parameters:
beanFactory
- owning BeanFactory (nevernull
). The bean can immediately call methods on the factory.- Throws:
BeansException
- in case of initialization errors- See Also:
-
createEntityManager
Obtain a new EntityManager from this accessor's EntityManagerFactory.Can be overridden in subclasses to create specific EntityManager variants.
- Returns:
- a new EntityManager
- Throws:
IllegalStateException
- if this accessor is not configured with an EntityManagerFactory- See Also:
-
getTransactionalEntityManager
Obtain the transactional EntityManager for this accessor's EntityManagerFactory, if any.- Returns:
- the transactional EntityManager, or
null
if none - Throws:
IllegalStateException
- if this accessor is not configured with an EntityManagerFactory- See Also:
-