# StatementInterceptor

interface StatementInterceptor

Represents the processes that should be performed during a statement's lifecycle events in a transaction.

In general, statement execution flow works in the following way:

1. beforeExecution of the statement

2. Creation of the prepared statement

3. afterStatementPrepared using the prepared statement from step 2

4. Execution of the SQL query

5. afterExecution

#### Inheritors

CompositeSqlLogger
GlobalStatementInterceptor

## Functions

afterCommit
Link copied to clipboard
open fun afterCommit(transaction: Transaction)

Performs steps after a transaction is committed.

afterExecution
Link copied to clipboard
open fun afterExecution(transaction: Transaction, contexts: List<StatementContext>, executedStatement: PreparedStatementApi)

Performs steps after an executedStatement, from the provided contexts, is complete in transaction.

afterRollback
Link copied to clipboard
open fun afterRollback(transaction: Transaction)

Performs steps after a rollback operation is issued on a transaction.

afterStatementPrepared
Link copied to clipboard
open fun afterStatementPrepared(transaction: Transaction, preparedStatement: PreparedStatementApi)

Performs steps after preparedStatement has been created in a transaction, but before the statement has been executed.

beforeCommit
Link copied to clipboard
open fun beforeCommit(transaction: Transaction)

Performs steps before a transaction is committed.

beforeExecution
Link copied to clipboard
open fun beforeExecution(transaction: Transaction, context: StatementContext)

Performs steps before a statement, from the provided context, is executed in a transaction.

beforeRollback
Link copied to clipboard
open fun beforeRollback(transaction: Transaction)

Performs steps before a rollback operation is issued on a transaction.

keepUserDataInTransactionStoreOnCommit
Link copied to clipboard
open fun keepUserDataInTransactionStoreOnCommit(userData: Map<Key<*>, Any?>): Map<Key<*>, Any?>

Returns a mapping of userData that ensures required information is not lost from the transaction scope once the transaction is committed.