Package org.springframework.transaction.support

# Class TransactionCallbackWithoutResult

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

All Implemented Interfaces:
  `TransactionCallback<Object>`

public abstract class TransactionCallbackWithoutResult extends Object implements TransactionCallback<Object>
Simple convenience class for TransactionCallback implementation. Allows for implementing a doInTransaction version without result, i.e. without the need for a return statement.

Since:
  28.03.2003
Author:
  Juergen Hoeller
See Also:
  - `TransactionTemplate`

## Constructor Summary

Constructors
Constructor
Description
`TransactionCallbackWithoutResult()`

## Method Summary

Modifier and Type
Method
Description
`final Object`
`doInTransaction(TransactionStatus status)`
Gets called by `TransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback<T>)` within a transactional context.
`protected abstract void`
`doInTransactionWithoutResult(TransactionStatus status)`
Gets called by `TransactionTemplate.execute` within a transactional context.

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

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

## Constructor Details

### TransactionCallbackWithoutResult

public TransactionCallbackWithoutResult()

## Method Details

### doInTransaction

@Nullable public final Object doInTransaction(TransactionStatus status)
Description copied from interface: `TransactionCallback`
Gets called by `TransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback<T>)` within a transactional context. Does not need to care about transactions itself, although it can retrieve and influence the status of the current transaction via the given status object, for example, setting rollback-only.

Allows for returning a result object created within the transaction, i.e. a domain object or a collection of domain objects. A RuntimeException thrown by the callback is treated as application exception that enforces a rollback. Any such exception will be propagated to the caller of the template, unless there is a problem rolling back, in which case a TransactionException will be thrown.

Specified by:
  `doInTransaction` in interface `TransactionCallback<Object>`
Parameters:
  `status` - associated transaction status
Returns:
  a result object, or `null`
See Also:
  - `TransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback<T>)`
  - `CallbackPreferringPlatformTransactionManager.execute(org.springframework.transaction.TransactionDefinition, org.springframework.transaction.support.TransactionCallback<T>)`

### doInTransactionWithoutResult

protected abstract void doInTransactionWithoutResult(TransactionStatus status)
Gets called by `TransactionTemplate.execute` within a transactional context. Does not need to care about transactions itself, although it can retrieve and influence the status of the current transaction via the given status object, for example, setting rollback-only.

A RuntimeException thrown by the callback is treated as application exception that enforces a rollback. An exception gets propagated to the caller of the template.

Note when using JTA: JTA transactions only work with transactional JNDI resources, so implementations need to use such resources if they want transaction support.

Parameters:
  `status` - associated transaction status
See Also:
  - `TransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback<T>)`