Package org.springframework.transaction.support

# Class TransactionSynchronizationUtils

java.lang.Object
org.springframework.transaction.support.TransactionSynchronizationUtils

public abstract class TransactionSynchronizationUtils extends Object
Utility methods for triggering specific `TransactionSynchronization` callback methods on all currently registered synchronizations.

Since:
  2.0
Author:
  Juergen Hoeller
See Also:
  - `TransactionSynchronization`
  - `TransactionSynchronizationManager.getSynchronizations()`

## Constructor Summary

Constructors
Constructor
Description
`TransactionSynchronizationUtils()`

## Method Summary

Modifier and Type
Method
Description
`static void`
`invokeAfterCommit(List<TransactionSynchronization> synchronizations)`
Actually invoke the `afterCommit` methods of the given Spring TransactionSynchronization objects.
`static void`
`invokeAfterCompletion(List<TransactionSynchronization> synchronizations, int completionStatus)`
Actually invoke the `afterCompletion` methods of the given Spring TransactionSynchronization objects.
`static boolean`
`sameResourceFactory(ResourceTransactionManager tm, Object resourceFactory)`
Check whether the given resource transaction manager refers to the given (underlying) resource factory.
`static void`
`triggerAfterCommit()`
Trigger `afterCommit` callbacks on all currently registered synchronizations.
`static void`
`triggerAfterCompletion(int completionStatus)`
Trigger `afterCompletion` callbacks on all currently registered synchronizations.
`static void`
`triggerBeforeCommit(boolean readOnly)`
Trigger `beforeCommit` callbacks on all currently registered synchronizations.
`static void`
`triggerBeforeCompletion()`
Trigger `beforeCompletion` callbacks on all currently registered synchronizations.
`static void`
`triggerFlush()`
Trigger `flush` callbacks on all currently registered synchronizations.
`static Object`
`unwrapResourceIfNecessary(Object resource)`
Unwrap the given resource handle if necessary; otherwise return the given handle as-is.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### TransactionSynchronizationUtils

public TransactionSynchronizationUtils()

## Method Details

### sameResourceFactory

public static boolean sameResourceFactory(ResourceTransactionManager tm, Object resourceFactory)
Check whether the given resource transaction manager refers to the given (underlying) resource factory.

See Also:
  - `ResourceTransactionManager.getResourceFactory()`
  - `InfrastructureProxy.getWrappedObject()`

### unwrapResourceIfNecessary

public static Object unwrapResourceIfNecessary(Object resource)
Unwrap the given resource handle if necessary; otherwise return the given handle as-is.

Since:
  5.3.4
See Also:
  - `InfrastructureProxy.getWrappedObject()`

### triggerFlush

public static void triggerFlush()
Trigger `flush` callbacks on all currently registered synchronizations.

Throws:
  `RuntimeException` - if thrown by a `flush` callback
See Also:
  - `TransactionSynchronization.flush()`

### triggerBeforeCommit

public static void triggerBeforeCommit(boolean readOnly)
Trigger `beforeCommit` callbacks on all currently registered synchronizations.

Parameters:
  `readOnly` - whether the transaction is defined as read-only transaction
Throws:
  `RuntimeException` - if thrown by a `beforeCommit` callback
See Also:
  - `TransactionSynchronization.beforeCommit(boolean)`

### triggerBeforeCompletion

public static void triggerBeforeCompletion()
Trigger `beforeCompletion` callbacks on all currently registered synchronizations.

See Also:
  - `TransactionSynchronization.beforeCompletion()`

### triggerAfterCommit

public static void triggerAfterCommit()
Trigger `afterCommit` callbacks on all currently registered synchronizations.

Throws:
  `RuntimeException` - if thrown by a `afterCommit` callback
See Also:
  - `TransactionSynchronizationManager.getSynchronizations()`
  - `TransactionSynchronization.afterCommit()`

### invokeAfterCommit

public static void invokeAfterCommit(@Nullable List<TransactionSynchronization> synchronizations)
Actually invoke the `afterCommit` methods of the given Spring TransactionSynchronization objects.

Parameters:
  `synchronizations` - a List of TransactionSynchronization objects
See Also:
  - `TransactionSynchronization.afterCommit()`

### triggerAfterCompletion

public static void triggerAfterCompletion(int completionStatus)
Trigger `afterCompletion` callbacks on all currently registered synchronizations.

Parameters:
  `completionStatus` - the completion status according to the constants in the TransactionSynchronization interface
See Also:
  - `TransactionSynchronizationManager.getSynchronizations()`
  - `TransactionSynchronization.afterCompletion(int)`
  - `TransactionSynchronization.STATUS_COMMITTED`
  - `TransactionSynchronization.STATUS_ROLLED_BACK`
  - `TransactionSynchronization.STATUS_UNKNOWN`

### invokeAfterCompletion

public static void invokeAfterCompletion(@Nullable List<TransactionSynchronization> synchronizations, int completionStatus)
Actually invoke the `afterCompletion` methods of the given Spring TransactionSynchronization objects.

Parameters:
  `synchronizations` - a List of TransactionSynchronization objects
  `completionStatus` - the completion status according to the constants in the TransactionSynchronization interface
See Also:
  - `TransactionSynchronization.afterCompletion(int)`
  - `TransactionSynchronization.STATUS_COMMITTED`
  - `TransactionSynchronization.STATUS_ROLLED_BACK`
  - `TransactionSynchronization.STATUS_UNKNOWN`