org.springframework.orm.jpa
Class EntityManagerFactoryAccessor

java.lang.Object
  extended by org.springframework.orm.jpa.EntityManagerFactoryAccessor
Direct Known Subclasses:
JpaAccessor, OpenEntityManagerInViewInterceptor, SharedEntityManagerBean

public abstract class EntityManagerFactoryAccessor
extends java.lang.Object

Base class for any class that needs to access an EntityManagerFactory, usually in order to obtain an EntityManager. Defines common properties.

Not intended to be used directly. See JpaAccessor.

Since:
2.0
Author:
Juergen Hoeller
See Also:
JpaAccessor, EntityManagerFactoryUtils

Field Summary
private  EntityManagerFactory entityManagerFactory
           
private  java.util.Map<java.lang.String,java.lang.Object> jpaPropertyMap
           
protected  Log logger
          Logger available to subclasses
 
Constructor Summary
EntityManagerFactoryAccessor()
           
 
Method Summary
protected  EntityManager createEntityManager()
          Obtain a new EntityManager from this accessor's EntityManagerFactory.
 EntityManagerFactory getEntityManagerFactory()
          Return the JPA EntityManagerFactory that should be used to create EntityManagers.
 java.util.Map<java.lang.String,java.lang.Object> getJpaPropertyMap()
          Allow Map access to the JPA properties to be passed to the persistence provider, with the option to add or override specific entries.
protected  EntityManager getTransactionalEntityManager()
          Obtain the transactional EntityManager for this accessor's EntityManagerFactory, if any.
 void setEntityManagerFactory(EntityManagerFactory emf)
          Set the JPA EntityManagerFactory that should be used to create EntityManagers.
 void setJpaProperties(java.util.Properties jpaProperties)
          Specify JPA properties, to be passed into EntityManagerFactory.createEntityManager(Map) (if any).
 void setJpaPropertyMap(java.util.Map<java.lang.String,java.lang.Object> jpaProperties)
          Specify JPA properties as a Map, to be passed into EntityManagerFactory.createEntityManager(Map) (if any).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final Log logger
Logger available to subclasses


entityManagerFactory

private EntityManagerFactory entityManagerFactory

jpaPropertyMap

private final java.util.Map<java.lang.String,java.lang.Object> jpaPropertyMap
Constructor Detail

EntityManagerFactoryAccessor

public EntityManagerFactoryAccessor()
Method Detail

setEntityManagerFactory

public void setEntityManagerFactory(EntityManagerFactory emf)
Set the JPA EntityManagerFactory that should be used to create EntityManagers.

See Also:
javax.persistence.EntityManagerFactory#createEntityManager(), javax.persistence.EntityManagerFactory#createEntityManager(java.util.Map)

getEntityManagerFactory

public EntityManagerFactory getEntityManagerFactory()
Return the JPA EntityManagerFactory that should be used to create EntityManagers.


setJpaProperties

public void setJpaProperties(java.util.Properties jpaProperties)
Specify JPA properties, to be passed into EntityManagerFactory.createEntityManager(Map) (if any).

Can be populated with a String "value" (parsed via PropertiesEditor) or a "props" element in XML bean definitions.

See Also:
javax.persistence.EntityManagerFactory#createEntityManager(java.util.Map)

setJpaPropertyMap

public void setJpaPropertyMap(java.util.Map<java.lang.String,java.lang.Object> jpaProperties)
Specify JPA properties as a Map, to be passed into EntityManagerFactory.createEntityManager(Map) (if any).

Can be populated with a "map" or "props" element in XML bean definitions.

See Also:
javax.persistence.EntityManagerFactory#createEntityManager(java.util.Map)

getJpaPropertyMap

public java.util.Map<java.lang.String,java.lang.Object> getJpaPropertyMap()
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]".


createEntityManager

protected EntityManager createEntityManager()
                                     throws java.lang.IllegalStateException
Obtain a new EntityManager from this accessor's EntityManagerFactory.

Can be overridden in subclasses to create specific EntityManager variants.

Returns:
a new EntityManager
Throws:
java.lang.IllegalStateException - if this accessor is not configured with an EntityManagerFactory
See Also:
javax.persistence.EntityManagerFactory#createEntityManager(), javax.persistence.EntityManagerFactory#createEntityManager(java.util.Map)

getTransactionalEntityManager

protected EntityManager getTransactionalEntityManager()
                                               throws java.lang.IllegalStateException
Obtain the transactional EntityManager for this accessor's EntityManagerFactory, if any.

Returns:
the transactional EntityManager, or null if none
Throws:
java.lang.IllegalStateException - if this accessor is not configured with an EntityManagerFactory
See Also:
EntityManagerFactoryUtils#getTransactionalEntityManager(javax.persistence.EntityManagerFactory), EntityManagerFactoryUtils#getTransactionalEntityManager(javax.persistence.EntityManagerFactory, java.util.Map)