spring-framework / org.springframework.jca.cci.core / InteractionCallback / doInInteraction

doInInteraction

@Nullable abstract fun doInInteraction(interaction: Interaction, connectionFactory: ConnectionFactory): T

Gets called by CciTemplate.execute with an active CCI Interaction. Does not need to care about activating or closing the Interaction, or handling transactions.

If called without a thread-bound CCI transaction (initiated by CciLocalTransactionManager), the code will simply get executed on the CCI Interaction with its transactional semantics. If CciTemplate is configured to use a JTA-aware ConnectionFactory, the CCI Interaction 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.

Parameters

interaction - active CCI Interaction

connectionFactory - the CCI ConnectionFactory that the Connection was created with (gives access to RecordFactory and ResourceAdapterMetaData)

Exceptions

ResourceException - if thrown by a CCI method, to be auto-converted to a DataAccessException

SQLException - if thrown by a ResultSet method, to be auto-converted to a DataAccessException

DataAccessException - in case of custom exceptions

Return
a result object, or null if none

See Also
javax.resource.cci.ConnectionFactory#getRecordFactory()javax.resource.cci.ConnectionFactory#getMetaData()CciTemplate#execute(javax.resource.cci.InteractionSpec, RecordCreator, RecordExtractor)