FactoryBean that exposes a shared JPA jakarta.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 Jakarta 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.
always needs an EntityManagerFactory in order to create new transactional EntityManager instances.
setEntityManagerFactory, setEntityManagerInterface, org.springframework.orm.jpa.LocalEntityManagerFactoryBean , org.springframework.orm.jpa.JpaTransactionManager
| Modifier and Type | Field and Description |
|---|---|
| private Class | |
| private EntityManager | |
| private boolean |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public final void | afterPropertiesSet()
Implements org. Invoked by the containing This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set. |
| public EntityManager | getObject()
Implements org. Return an instance (possibly shared or independent) of the object managed by this factory. |
| public Class | getObjectType()
Implements org. Return the type of object that this FactoryBean creates,
or |
| public boolean | isSingleton()
Overrides default org. Is the object managed by this factory a singleton? |
| public void | setEntityManagerInterface(Class<? extends EntityManager> entityManagerInterface)
Specify the EntityManager interface to expose. |
| public void | setSynchronizedWithTransaction(boolean synchronizedWithTransaction)
Set whether to automatically join ongoing transactions (according to the JPA 2.1 SynchronizationType rules). |
| entityManagerInterface | back to summary |
|---|---|
| private Class<? extends EntityManager> entityManagerInterface
| |
| shared | back to summary |
|---|---|
| private EntityManager shared
| |
| synchronizedWithTransaction | back to summary |
|---|---|
| private boolean synchronizedWithTransaction | |
| SharedEntityManagerBean | back to summary |
|---|---|
| public SharedEntityManagerBean() | |
| afterPropertiesSet | back to summary |
|---|---|
| public final void afterPropertiesSet() Implements org. Doc from org. Invoked by the containing This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
| |
| getObject | back to summary |
|---|---|
| public EntityManager getObject() Implements org. Doc from org. Return an instance (possibly shared or independent) of the object managed by this factory. As with a If this FactoryBean is not fully initialized yet at the time of
the call (for example because it is involved in a circular reference),
throw a corresponding As of Spring 2.0, FactoryBeans are allowed to return
| |
| getObjectType | back to summary |
|---|---|
| public Class Implements org. Doc from org. Return the type of object that this FactoryBean creates,
or This allows one to check for specific types of beans without instantiating objects, for example on autowiring. In the case of implementations that are creating a singleton object, this method should try to avoid singleton creation as far as possible; it should rather estimate the type in advance. For prototypes, returning a meaningful type here is advisable too. This method can be called before this FactoryBean has been fully initialized. It must not rely on state created during initialization; of course, it can still use such state if available. Note Autowiring will simply ignore FactoryBeans that return
| |
| isSingleton | back to summary |
|---|---|
| public boolean isSingleton() Overrides default org. Doc from org. Is the object managed by this factory a singleton? That is,
will Note If a FactoryBean indicates to hold a singleton object,
the object returned from The singleton status of the FactoryBean itself will generally be provided by the owning BeanFactory; usually, it has to be defined as singleton there. Note This method returning The default implementation returns
| |
| setEntityManagerInterface | back to summary |
|---|---|
| public void setEntityManagerInterface(Class<? extends EntityManager> entityManagerInterface) Specify the EntityManager interface to expose. Default is the EntityManager interface as defined by the
EntityManagerFactoryInfo, if available. Else, the standard
| |
| setSynchronizedWithTransaction | back to summary |
|---|---|
| public void setSynchronizedWithTransaction(boolean synchronizedWithTransaction) Set whether to automatically join ongoing transactions (according to the JPA 2.1 SynchronizationType rules). Default is "true". | |