#include </data/code/userver/mysql/include/userver/storages/mysql/transaction.hpp>
RAII transaction wrapper, auto-ROLLBACKs on destruction if no prior Commit
/Rollback
call was made.
This type can't be constructed in user code and is always retrieved from storages::mysql::Cluster
Definition at line 29 of file transaction.hpp.
Public Member Functions | |
Transaction (infra::ConnectionPtr &&connection, engine::Deadline deadline) | |
Transaction (const Transaction &other)=delete | |
Transaction (Transaction &&other) noexcept | |
template<typename... Args> | |
StatementResultSet | Execute (const Query &query, const Args &... args) const |
Executes a statement with default deadline. Fills placeholders of the statement with args..., Args are expected to be of supported types. See userver_mysql_types for better understanding of Args requirements. | |
template<typename T > | |
StatementResultSet | ExecuteDecompose (const Query &query, const T &row) const |
Executes a statement with default deadline. | |
template<typename Container > | |
StatementResultSet | ExecuteBulk (const Query &query, const Container ¶ms) const |
Executes a statement with default deadline. Fills placeholders of the statements with Container::value_type in a bulk-manner. Container is expected to be a std::Container, Container::value_type is expected to be an aggregate of supported types. See userver_mysql_types for better understanding of Container::value_type requirements. | |
template<typename MapTo , typename Container > | |
StatementResultSet | ExecuteBulkMapped (const Query &query, const Container ¶ms) const |
Executes a statement with default deadline, on the flight remapping from Container::value_type to MapTo . Container is expected to be a std::Container of whatever type pleases you, MapTo is expected to be an aggregate of supported types. See userver_mysql_types for better understanding of MapTo requirements. You are expected to provide a converter function MapTo Convert(const Container::value_type&, storages::mysql::convert::To<MapTo>) in namespace of MapTo or storages::mysql::convert. | |
void | Commit () |
Commit the transaction. | |
void | Rollback () |
Rollback the transaction. | |
StatementResultSet storages::mysql::Transaction::Execute | ( | const Query & | query, |
const Args &... | args ) const |
Executes a statement with default deadline. Fills placeholders of the statement with args..., Args
are expected to be of supported types. See userver_mysql_types for better understanding of Args
requirements.
UINVARIANTs on params count mismatch doesn't validate types.
Definition at line 112 of file transaction.hpp.
StatementResultSet storages::mysql::Transaction::ExecuteBulk | ( | const Query & | query, |
const Container & | params ) const |
Executes a statement with default deadline. Fills placeholders of the statements with Container::value_type in a bulk-manner. Container is expected to be a std::Container, Container::value_type is expected to be an aggregate of supported types. See userver_mysql_types for better understanding of Container::value_type
requirements.
UINVARIANTs on params count mismatch, doesn't validate types. UINVARIANTs on empty params container.
Definition at line 128 of file transaction.hpp.
StatementResultSet storages::mysql::Transaction::ExecuteBulkMapped | ( | const Query & | query, |
const Container & | params ) const |
Executes a statement with default deadline, on the flight remapping from Container::value_type
to MapTo
. Container
is expected to be a std::Container of whatever type pleases you, MapTo
is expected to be an aggregate of supported types. See userver_mysql_types for better understanding of MapTo
requirements. You are expected to provide a converter function MapTo Convert(const Container::value_type&, storages::mysql::convert::To<MapTo>)
in namespace of MapTo
or storages::mysql::convert.
UINVARIANTs on params count mismatch, doesn't validate types. UINVARIANTs on empty params container.
Definition at line 138 of file transaction.hpp.
StatementResultSet storages::mysql::Transaction::ExecuteDecompose | ( | const Query & | query, |
const T & | row ) const |
Executes a statement with default deadline.
Basically an alias for Execute(host_type, query, AsArgs<T>(row)), where AsArgs is an imaginary function which passes fields of T as variadic params. Handy for one-liner inserts. See userver_mysql_types for better understanding of T
requirements.
UINVARIANTs on params count mismatch, doesn't validate types.
Definition at line 120 of file transaction.hpp.