org.springframework.transaction.support
Class TransactionCallbackWithoutResult

java.lang.Object
  extended by 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
TransactionCallbackWithoutResult()
           
 
Method Summary
 Object doInTransaction(TransactionStatus status)
          Gets called by TransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback) 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 Detail

TransactionCallbackWithoutResult

public TransactionCallbackWithoutResult()
Method Detail

doInTransaction

public final Object doInTransaction(TransactionStatus status)
Description copied from interface: TransactionCallback
Gets called by TransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback) 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, e.g. 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), CallbackPreferringPlatformTransactionManager.execute(org.springframework.transaction.TransactionDefinition, org.springframework.transaction.support.TransactionCallback)

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, e.g. 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)