Data::Model::Transaction - transaction manager for Data::Model
sub foo {
my $is_die = shift;
my $model = Your::Model->new;
my $txn = $model->txn_scope; # start transaction
my $row = $txn->lookup( user => 1 ); # $model->lookup doesn't work.
$row->name('transaction name');
$txn->update( $row ); # update
return if $is_die; # rollback
if ($is_die) {
$txn->rollback; # explicitly rollback
return;
}
$txn->commit; # commit
}
foo(1); # rollback
foo(0); # commit
lookup, lookup_multi, get, get_multi, set, replace, set_multi,
update, update_direct, delete, delete_direct, delete_multi and txn_scope and
txn_begin derived from DataModel are not usable temporarily.
When you use these methods, please carry out via the instance
which txn_scope returns.
Kazuhiro Osawa <yappo <at> shibuya <doet> pl>
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
Hey! The above document had some coding errors, which are explained
below:
- Around line 115:
- Non-ASCII character seen before =encoding in '<doet>'. Assuming
UTF-8