|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.orm.jpa.DefaultJpaDialect org.springframework.orm.jpa.vendor.HibernateJpaDialect
public class HibernateJpaDialect
JpaDialect
implementation for
Hibernate EntityManager. Developed against Hibernate 3.3;
tested against 3.3, 3.5, 3.6 and 4.0 (with the latter including
Hibernate EntityManager in the Hibernate core distribution).
Constructor Summary | |
---|---|
HibernateJpaDialect()
|
Method Summary | |
---|---|
Object |
beginTransaction(EntityManager entityManager,
TransactionDefinition definition)
This implementation invokes the standard JPA Transaction.begin
method. |
void |
cleanupTransaction(Object transactionData)
This implementation does nothing, since the default beginTransaction
implementation does not require any cleanup. |
ConnectionHandle |
getJdbcConnection(EntityManager entityManager,
boolean readOnly)
This implementation always returns null ,
indicating that no JDBC Connection can be provided. |
protected Session |
getSession(EntityManager em)
|
Object |
prepareTransaction(EntityManager entityManager,
boolean readOnly,
String name)
Prepare a JPA transaction, applying the specified semantics. |
DataAccessException |
translateExceptionIfPossible(RuntimeException ex)
This implementation delegates to EntityManagerFactoryUtils. |
Methods inherited from class org.springframework.orm.jpa.DefaultJpaDialect |
---|
getEntityManagerFactoryPlusOperations, getEntityManagerPlusOperations, releaseJdbcConnection, supportsEntityManagerFactoryPlusOperations, supportsEntityManagerPlusOperations |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public HibernateJpaDialect()
Method Detail |
---|
public Object beginTransaction(EntityManager entityManager, TransactionDefinition definition) throws PersistenceException, SQLException, TransactionException
DefaultJpaDialect
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.
beginTransaction
in interface JpaDialect
beginTransaction
in class DefaultJpaDialect
entityManager
- the EntityManager to begin a JPA transaction ondefinition
- the Spring transaction definition that defines semantics
JpaDialect.cleanupTransaction(java.lang.Object)
). May implement the
SavepointManager
interface.
PersistenceException
- if thrown by JPA methods
SQLException
- if thrown by JDBC methods
TransactionException
- in case of invalid argumentsEntityTransaction.begin()
,
InvalidIsolationLevelException
,
DefaultJpaDialect.cleanupTransaction(java.lang.Object)
public Object prepareTransaction(EntityManager entityManager, boolean readOnly, String name) throws PersistenceException
JpaDialect
An implementation can apply the read-only flag as flush mode. In that case,
a transaction data object can be returned that holds the previous flush mode
(and possibly other data), to be reset in cleanupTransaction
.
Implementations can also use the Spring transaction name, as exposed by the passed-in TransactionDefinition, to optimize for specific data access use cases (effectively using the current transaction name as use case identifier).
prepareTransaction
in interface JpaDialect
prepareTransaction
in class DefaultJpaDialect
entityManager
- the EntityManager to begin a JPA transaction onreadOnly
- whether the transaction is supposed to be read-onlyname
- the name of the transaction (if any)
PersistenceException
- if thrown by JPA methodsJpaDialect.cleanupTransaction(java.lang.Object)
public void cleanupTransaction(Object transactionData)
DefaultJpaDialect
beginTransaction
implementation does not require any cleanup.
cleanupTransaction
in interface JpaDialect
cleanupTransaction
in class DefaultJpaDialect
transactionData
- arbitrary object that holds transaction data, if any
(as returned by beginTransaction or prepareTransaction)DefaultJpaDialect.beginTransaction(javax.persistence.EntityManager, org.springframework.transaction.TransactionDefinition)
public ConnectionHandle getJdbcConnection(EntityManager entityManager, boolean readOnly) throws PersistenceException, SQLException
DefaultJpaDialect
null
,
indicating that no JDBC Connection can be provided.
getJdbcConnection
in interface JpaDialect
getJdbcConnection
in class DefaultJpaDialect
entityManager
- the current JPA EntityManagerreadOnly
- whether the Connection is only needed for read-only purposes
releaseJdbcConnection
, or null
if no JDBC Connection can be retrieved
PersistenceException
- if thrown by JPA methods
SQLException
- if thrown by JDBC methodsJpaDialect.releaseJdbcConnection(org.springframework.jdbc.datasource.ConnectionHandle, javax.persistence.EntityManager)
,
ConnectionHandle.getConnection()
,
SimpleConnectionHandle
,
JpaTransactionManager.setDataSource(javax.sql.DataSource)
,
NativeJdbcExtractor
public DataAccessException translateExceptionIfPossible(RuntimeException ex)
DefaultJpaDialect
translateExceptionIfPossible
in interface PersistenceExceptionTranslator
translateExceptionIfPossible
in class DefaultJpaDialect
ex
- a RuntimeException thrown
null
if the
exception could not be translated, as in this case it may result from
user code rather than an actual persistence problem)EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(java.lang.RuntimeException)
protected Session getSession(EntityManager em)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |