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.
Prepare a JPA transaction, applying the specified semantics. Called by
EntityManagerFactoryUtils when enlisting an EntityManager in a JTA transaction
or a locally joined transaction (e.g. after upgrading an unsynchronized
EntityManager to a synchronized one).
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 to optimize for
specific data access use cases (effectively using the current transaction
name as use case identifier).
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.