Trait diesel::connection::TransactionManager
source · [−]pub trait TransactionManager<Conn: Connection> {
fn begin_transaction(&self, conn: &Conn) -> QueryResult<()>;
fn rollback_transaction(&self, conn: &Conn) -> QueryResult<()>;
fn commit_transaction(&self, conn: &Conn) -> QueryResult<()>;
fn get_transaction_depth(&self) -> u32;
}
Expand description
Manages the internal transaction state for a connection.
You will not need to interact with this trait, unless you are writing an
implementation of Connection
.
Required methods
fn begin_transaction(&self, conn: &Conn) -> QueryResult<()>
fn begin_transaction(&self, conn: &Conn) -> QueryResult<()>
Begin a new transaction or savepoint
If the transaction depth is greater than 0, this should create a savepoint instead. This function is expected to increment the transaction depth by 1.
fn rollback_transaction(&self, conn: &Conn) -> QueryResult<()>
fn rollback_transaction(&self, conn: &Conn) -> QueryResult<()>
Rollback the inner-most transaction or savepoint
If the transaction depth is greater than 1, this should rollback to the most recent savepoint. This function is expected to decrement the transaction depth by 1.
fn commit_transaction(&self, conn: &Conn) -> QueryResult<()>
fn commit_transaction(&self, conn: &Conn) -> QueryResult<()>
Commit the inner-most transaction or savepoint
If the transaction depth is greater than 1, this should release the most recent savepoint. This function is expected to decrement the transaction depth by 1.
fn get_transaction_depth(&self) -> u32
fn get_transaction_depth(&self) -> u32
Fetch the current transaction depth
Used to ensure that begin_test_transaction
is not called when already
inside of a transaction.