Class LocalEntityManagerFactoryBean
- All Implemented Interfaces:
Serializable
,Aware
,BeanClassLoaderAware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,FactoryBean<EntityManagerFactory>
,InitializingBean
,PersistenceExceptionTranslator
,EntityManagerFactoryInfo
FactoryBean
that creates a JPA
EntityManagerFactory
according to JPA's standard
standalone bootstrap contract. This is the simplest way to set up a
shared JPA EntityManagerFactory in a Spring application context; the
EntityManagerFactory can then be passed to JPA-based DAOs via
dependency injection. Note that switching to a JNDI lookup or to a
LocalContainerEntityManagerFactoryBean
definition is just a matter of configuration!
Configuration settings are usually read from a META-INF/persistence.xml
config file, residing in the class path, according to the JPA standalone bootstrap
contract. Additionally, most JPA providers will require a special VM agent
(specified on JVM startup) that allows them to instrument application classes.
See the Java Persistence API specification and your provider documentation
for setup details.
This EntityManagerFactory bootstrap is appropriate for standalone applications
which solely use JPA for data access. If you want to set up your persistence
provider for an external DataSource and/or for global transactions which span
multiple resources, you will need to either deploy it into a full Jakarta EE
application server and access the deployed EntityManagerFactory via JNDI,
or use Spring's LocalContainerEntityManagerFactoryBean
with appropriate
configuration for local setup according to JPA's container contract.
Note: This FactoryBean has limited configuration power in terms of
what configuration it is able to pass to the JPA provider. If you need more
flexible configuration, for example passing a Spring-managed JDBC DataSource
to the JPA provider, consider using Spring's more powerful
LocalContainerEntityManagerFactoryBean
instead.
- Since:
- 2.0
- Author:
- Juergen Hoeller, Rod Johnson
- See Also:
-
AbstractEntityManagerFactoryBean.setJpaProperties(java.util.Properties)
AbstractEntityManagerFactoryBean.setJpaVendorAdapter(org.springframework.orm.jpa.JpaVendorAdapter)
JpaTransactionManager.setEntityManagerFactory(jakarta.persistence.EntityManagerFactory)
LocalContainerEntityManagerFactoryBean
JndiObjectFactoryBean
SharedEntityManagerBean
Persistence.createEntityManagerFactory(java.lang.String)
PersistenceProvider.createEntityManagerFactory(java.lang.String, java.util.Map)
- Serialized Form
-
Field Summary
Fields inherited from class org.springframework.orm.jpa.AbstractEntityManagerFactoryBean
logger
Fields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected EntityManagerFactory
Initialize the EntityManagerFactory for the given configuration.Methods inherited from class org.springframework.orm.jpa.AbstractEntityManagerFactoryBean
afterPropertiesSet, createEntityManagerFactoryProxy, createNativeEntityManager, destroy, getBeanClassLoader, getBootstrapExecutor, getDataSource, getEntityManagerInterface, getJpaDialect, getJpaPropertyMap, getJpaVendorAdapter, getNativeEntityManagerFactory, getObject, getObjectType, getPersistenceProvider, getPersistenceUnitInfo, getPersistenceUnitName, isSingleton, postProcessEntityManager, setBeanClassLoader, setBeanFactory, setBeanName, setBootstrapExecutor, setEntityManagerFactoryInterface, setEntityManagerInitializer, setEntityManagerInterface, setJpaDialect, setJpaProperties, setJpaPropertyMap, setJpaVendorAdapter, setPersistenceProvider, setPersistenceProviderClass, setPersistenceUnitName, translateExceptionIfPossible, writeReplace
-
Constructor Details
-
LocalEntityManagerFactoryBean
public LocalEntityManagerFactoryBean()
-
-
Method Details
-
createNativeEntityManagerFactory
Initialize the EntityManagerFactory for the given configuration.- Specified by:
createNativeEntityManagerFactory
in classAbstractEntityManagerFactoryBean
- Returns:
- the EntityManagerFactory instance returned by this FactoryBean
- Throws:
PersistenceException
- in case of JPA initialization errors
-