Package org.hibernate.cache.spi
Interface CacheTransactionSynchronization
-
- All Known Implementing Classes:
AbstractCacheTransactionSynchronization
,StandardCacheTransactionSynchronization
public interface CacheTransactionSynchronization
Defines a context object that aRegionFactory
is asked to create (RegionFactory.createTransactionContext(org.hibernate.engine.spi.SharedSessionContractImplementor)
}) when a Hibernate Session is created. It's lifecycle is that of the Session. It receives "transactional event callbacks" around joining and completing resource transactions. This allows the cache impl to book-keep data related to current transaction, such as and process it in unique ways. E.g. this allows an impl to perform batch updates if Hibernate is configured to use JDBC-only transactions, and therefore information cannot be retrieved from the JTA transaction assigned to current thread. While transactional semantics might be fully implemented by the cache provider, Hibernate may require different transactional semantics: In order to prevent inconsistent reads, 2LC should not expose entities that are modified in any concurrently executing transactions, and force DB load instead. Native transactional implementation may provide looser semantics and 2LC implementation has to adapt to these.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description long
getCurrentTransactionStartTimestamp()
What is the start time of this context object?void
transactionCompleted(boolean successful)
Callback that the underling resource transaction to which the owning Session was joined is in the "completed" stage.void
transactionCompleting()
Callback that the underling resource transaction to which the owning Session was joined is in the beginning stages of completing.void
transactionJoined()
Callback that owning Session has become joined to a resource transaction.default void
transactionResumed()
Currently not used.default void
transactionSuspended()
Currently not used.
-
-
-
Method Detail
-
getCurrentTransactionStartTimestamp
long getCurrentTransactionStartTimestamp()
What is the start time of this context object?
-
transactionJoined
void transactionJoined()
Callback that owning Session has become joined to a resource transaction.
-
transactionCompleting
void transactionCompleting()
Callback that the underling resource transaction to which the owning Session was joined is in the beginning stages of completing. Note that this is only called for successful "begin completion" of the underlying resource transaction (not rolling-back, marked-for-rollback, etc)
-
transactionCompleted
void transactionCompleted(boolean successful)
Callback that the underling resource transaction to which the owning Session was joined is in the "completed" stage. This method is called regardless of success or failure of the transaction - the outcome is passed as a boolean.- Parameters:
successful
- Was the resource transaction successful?
-
transactionSuspended
default void transactionSuspended()
Currently not used. Here for future expansion
-
transactionResumed
default void transactionResumed()
Currently not used. Here for future expansion
-
-