abstract class EntityManagerFactoryAccessor : BeanFactoryAware
Base class for any class that needs to access a JPA EntityManagerFactory, usually in order to obtain a JPA EntityManager. Defines common properties.
Author
Juergen Hoeller
Since
2.0
See Also
EntityManagerFactoryUtils
EntityManagerFactoryAccessor()
Base class for any class that needs to access a JPA EntityManagerFactory, usually in order to obtain a JPA EntityManager. Defines common properties. |
open fun getEntityManagerFactory(): EntityManagerFactory
Return the JPA EntityManagerFactory that should be used to create EntityManagers. |
|
open fun getJpaPropertyMap(): MutableMap<String, Any>
Allow Map 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]". |
|
open fun getPersistenceUnitName(): String
Return the name of the persistence unit to access the EntityManagerFactory for, if any. |
|
open fun setBeanFactory(beanFactory: BeanFactory): Unit
Retrieves an EntityManagerFactory by persistence unit name, if none set explicitly. Falls back to a default EntityManagerFactory bean if no persistence unit specified. |
|
open fun setEntityManagerFactory(emf: EntityManagerFactory): Unit
Set the JPA EntityManagerFactory that should be used to create EntityManagers. |
|
open fun setJpaProperties(jpaProperties: Properties): Unit
Specify JPA properties, to be passed into Can be populated with a String "value" (parsed via PropertiesEditor) or a "props" element in XML bean definitions. |
|
open fun setJpaPropertyMap(jpaProperties: MutableMap<String, Any>): Unit
Specify JPA properties as a Map, to be passed into Can be populated with a "map" or "props" element in XML bean definitions. |
|
open fun setPersistenceUnitName(persistenceUnitName: String): Unit
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. |
open class HibernateJpaSessionFactoryBean : EntityManagerFactoryAccessor, FactoryBean<SessionFactory>
Simple Primarily available for resolving a SessionFactory by JPA persistence unit name via the Note that, for straightforward cases, you could also simply declare a factory method:
And as of JPA 2.1, Please note: Since Hibernate 5.2 changed its SessionFactory interface to extend JPA's EntityManagerFactory, you may get conflicts when injecting by type, with both the original factory and your custom SessionFactory matching EntityManagerFactory. An explicit qualifier for the original factory (as indicated above) is recommended here.
|
|
open class OpenEntityManagerInViewInterceptor : EntityManagerFactoryAccessor, AsyncWebRequestInterceptor
Spring web request interceptor that binds a JPA EntityManager to the thread for the entire processing of the request. Intended for the "Open EntityManager in View" pattern, i.e. to allow for lazy loading in web views despite the original transactions already being completed. This interceptor makes JPA EntityManagers available via the current thread, which will be autodetected by transaction managers. It is suitable for service layer transactions via org.springframework.orm.jpa.JpaTransactionManager or org.springframework.transaction.jta.JtaTransactionManager as well as for non-transactional read-only execution. In contrast to OpenEntityManagerInViewFilter, this interceptor is set up in a Spring application context and can thus take advantage of bean wiring. |
|
open class SharedEntityManagerBean : EntityManagerFactoryAccessor, FactoryBean<EntityManager>, InitializingBean
FactoryBean that exposes a shared JPA javax.persistence.EntityManager reference for a given EntityManagerFactory. Typically used for an EntityManagerFactory created by org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean, as direct alternative to a JNDI lookup for a Java EE server's EntityManager reference. The shared EntityManager will behave just like an EntityManager fetched from an application server's JNDI environment, as defined by the JPA specification. It will delegate all calls to the current transactional EntityManager, if any; otherwise, it will fall back to a newly created EntityManager per operation. Can be passed to DAOs that expect a shared EntityManager reference rather than an EntityManagerFactory. Note that Spring's org.springframework.orm.jpa.JpaTransactionManager always needs an EntityManagerFactory in order to create new transactional EntityManager instances. |