@Nullable abstract fun <T : Any> execute(action: TransactionCallback<T>): T
Execute the action specified by the given callback object within a transaction.
Allows for returning a result object created within the transaction, that is, a domain object or a collection of domain objects. A RuntimeException thrown by the callback is treated as a fatal exception that enforces a rollback. Such an exception gets propagated to the caller of the template.
action - the callback object that specifies the transactional action
TransactionException - in case of initialization, rollback, or system errors
RuntimeException - if thrown by the TransactionCallback
Return
a result object returned by the callback, or null if none