Save This Page
Home » spring-framework-2.5.6-with-dependencies » org.springframework » orm » jpa » [javadoc | source]
org.springframework.orm.jpa
abstract public class: JpaAccessor [javadoc | source]
java.lang.Object
   org.springframework.orm.jpa.EntityManagerFactoryAccessor
      org.springframework.orm.jpa.JpaAccessor

All Implemented Interfaces:
    InitializingBean

Direct Known Subclasses:
    JpaInterceptor, JpaTemplate

Base class for JpaTemplate and JpaInterceptor, defining common properties such as EntityManagerFactory and flushing behavior.

Not intended to be used directly. See JpaTemplate and JpaInterceptor .

Fields inherited from org.springframework.orm.jpa.EntityManagerFactoryAccessor:
logger
Method from org.springframework.orm.jpa.JpaAccessor Summary:
afterPropertiesSet,   flushIfNecessary,   getEntityManager,   getJpaDialect,   isFlushEager,   setEntityManager,   setFlushEager,   setJpaDialect,   translateIfNecessary
Methods from org.springframework.orm.jpa.EntityManagerFactoryAccessor:
createEntityManager,   getEntityManagerFactory,   getJpaPropertyMap,   getTransactionalEntityManager,   setEntityManagerFactory,   setJpaProperties,   setJpaPropertyMap
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.springframework.orm.jpa.JpaAccessor Detail:
 public  void afterPropertiesSet() 
    Eagerly initialize the JPA dialect, creating a default one for the specified EntityManagerFactory if none set.
 protected  void flushIfNecessary(EntityManager em,
    boolean existingTransaction) throws PersistenceException 
    Flush the given JPA entity manager if necessary.
 public EntityManager getEntityManager() 
    Return the JPA EntityManager to use.
 public JpaDialect getJpaDialect() 
    Return the JPA dialect to use for this accessor.

    Creates a default one for the specified EntityManagerFactory if none set.

 public boolean isFlushEager() 
    Return if this accessor should flush changes to the database eagerly.
 public  void setEntityManager(EntityManager entityManager) 
    Set the JPA EntityManager to use.
 public  void setFlushEager(boolean flushEager) 
    Set if this accessor should flush changes to the database eagerly.

    Eager flushing leads to immediate synchronization with the database, even if in a transaction. This causes inconsistencies to show up and throw a respective exception immediately, and JDBC access code that participates in the same transaction will see the changes as the database is already aware of them then. But the drawbacks are:

    • additional communication roundtrips with the database, instead of a single batch at transaction commit;
    • the fact that an actual database rollback is needed if the JPA transaction rolls back (due to already submitted SQL statements).
 public  void setJpaDialect(JpaDialect jpaDialect) 
    Set the JPA dialect to use for this accessor.

    The dialect object can be used to retrieve the underlying JDBC connection, for example.

 public RuntimeException translateIfNecessary(RuntimeException ex) 
    Convert the given runtime exception to an appropriate exception from the org.springframework.dao hierarchy if necessary, or return the exception itself if it is not persistence related

    Default implementation delegates to the JpaDialect. May be overridden in subclasses.