CciTemplate.execute
with an active CCI Connection. Does not need to care about activating or closing the Connection, or handling transactions. If called without a thread-bound CCI transaction (initiated by CciLocalTransactionManager), the code will simply get executed on the CCI Connection with its transactional semantics. If CciTemplate is configured to use a JTA-aware ConnectionFactory, the CCI Connection and thus the callback code will be transactional if a JTA transaction is active.
Allows for returning a result object created within the callback, i.e. a domain object or a collection of domain objects. Note that there's special support for single step actions: see the CciTemplate.execute
variants. A thrown RuntimeException is treated as application exception: it gets propagated to the caller of the template.
@param connection active CCI Connection
@param connectionFactory the CCI ConnectionFactory that the Connection wascreated with (gives access to RecordFactory and ResourceAdapterMetaData)
@return a result object, or null
if none
@throws ResourceException if thrown by a CCI method, to be auto-convertedto a DataAccessException
@throws SQLException if thrown by a ResultSet method, to be auto-convertedto a DataAccessException
@throws DataAccessException in case of custom exceptions
@see javax.resource.cci.ConnectionFactory#getRecordFactory()
@see javax.resource.cci.ConnectionFactory#getMetaData()
@see CciTemplate#execute(javax.resource.cci.InteractionSpec,RecordCreator,RecordExtractor)
|
|