The Spring Framework

org.springframework.orm.jpa.vendor
Class OpenJpaDialect

java.lang.Object
  extended by org.springframework.orm.jpa.DefaultJpaDialect
      extended by org.springframework.orm.jpa.vendor.OpenJpaDialect
All Implemented Interfaces:
PersistenceExceptionTranslator, JpaDialect

public class OpenJpaDialect
extends DefaultJpaDialect

JpaDialect implementation for Apache OpenJPA. Developed and tested against OpenJPA 0.9.6.

Since:
2.0
Author:
Costin Leau

Constructor Summary
OpenJpaDialect()
           
 
Method Summary
 Object beginTransaction(javax.persistence.EntityManager entityManager, TransactionDefinition definition)
          This implementation invokes the standard JPA Transaction.begin method.
 ConnectionHandle getJdbcConnection(javax.persistence.EntityManager entityManager, boolean readOnly)
          This implementation always returns null, indicating that no JDBC Connection can be provided.
protected  org.apache.openjpa.persistence.OpenJPAEntityManager getOpenJPAEntityManager(javax.persistence.EntityManager em)
          Return the OpenJPA-specific interface of EntityManager.
 void releaseJdbcConnection(ConnectionHandle conHandle, javax.persistence.EntityManager em)
          This implementation does nothing, assuming that the Connection will implicitly be closed with the EntityManager.
 
Methods inherited from class org.springframework.orm.jpa.DefaultJpaDialect
cleanupTransaction, getEntityManagerFactoryPlusOperations, getEntityManagerPlusOperations, supportsEntityManagerFactoryPlusOperations, supportsEntityManagerPlusOperations, translateExceptionIfPossible
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OpenJpaDialect

public OpenJpaDialect()
Method Detail

getJdbcConnection

public ConnectionHandle getJdbcConnection(javax.persistence.EntityManager entityManager,
                                          boolean readOnly)
                                   throws javax.persistence.PersistenceException,
                                          SQLException
Description copied from class: DefaultJpaDialect
This implementation always returns null, indicating that no JDBC Connection can be provided.

Specified by:
getJdbcConnection in interface JpaDialect
Overrides:
getJdbcConnection in class DefaultJpaDialect
Parameters:
entityManager - the current JPA EntityManager
Returns:
a handle for the JDBC Connection, to be passed into releaseJdbcConnection, or null if no JDBC Connection can be retrieved
Throws:
javax.persistence.PersistenceException - if thrown by JPA methods
SQLException - if thrown by JDBC methods
See Also:
JpaDialect.releaseJdbcConnection(org.springframework.jdbc.datasource.ConnectionHandle, javax.persistence.EntityManager), ConnectionHandle.getConnection(), SimpleConnectionHandle, JpaTransactionManager.setDataSource(javax.sql.DataSource), NativeJdbcExtractor

releaseJdbcConnection

public void releaseJdbcConnection(ConnectionHandle conHandle,
                                  javax.persistence.EntityManager em)
                           throws javax.persistence.PersistenceException,
                                  SQLException
Description copied from class: DefaultJpaDialect
This implementation does nothing, assuming that the Connection will implicitly be closed with the EntityManager.

If the JPA implementation returns a Connection handle that it expects the application to close after use, the dialect implementation needs to invoke Connection.close() (or some other method with similar effect) here.

Specified by:
releaseJdbcConnection in interface JpaDialect
Overrides:
releaseJdbcConnection in class DefaultJpaDialect
Parameters:
conHandle - the JDBC Connection handle to release
em - the current JPA EntityManager
Throws:
javax.persistence.PersistenceException - if thrown by JPA methods
SQLException - if thrown by JDBC methods
See Also:
Connection.close()

beginTransaction

public Object beginTransaction(javax.persistence.EntityManager entityManager,
                               TransactionDefinition definition)
                        throws javax.persistence.PersistenceException,
                               SQLException,
                               TransactionException
Description copied from class: DefaultJpaDialect
This implementation invokes the standard JPA Transaction.begin method. Throws an InvalidIsolationLevelException if a non-default isolation level is set.

This implementation does not return any transaction data Object, since there is no state to be kept for a standard JPA transaction. Hence, subclasses do not have to care about the return value (null) of this implementation and are free to return their own transaction data Object.

Specified by:
beginTransaction in interface JpaDialect
Overrides:
beginTransaction in class DefaultJpaDialect
Parameters:
entityManager - the EntityManager to begin a JPA transaction on
definition - the Spring transaction definition that defines semantics
Returns:
an arbitrary object that holds transaction data, if any (to be passed into cleanupTransaction)
Throws:
javax.persistence.PersistenceException - if thrown by JPA methods
SQLException - if thrown by JDBC methods
TransactionException - in case of invalid arguments
See Also:
EntityTransaction.begin(), InvalidIsolationLevelException, DefaultJpaDialect.cleanupTransaction(java.lang.Object)

getOpenJPAEntityManager

protected org.apache.openjpa.persistence.OpenJPAEntityManager getOpenJPAEntityManager(javax.persistence.EntityManager em)
Return the OpenJPA-specific interface of EntityManager.

Parameters:
em - the generic EntityManager instance
Returns:
the OpenJPA-specific interface of EntityManager

The Spring Framework

Copyright © 2002-2007 The Spring Framework.