Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 96670fe8

Von Moritz Bunkus vor etwa 8 Jahren hinzugefügt

  • ID 96670fe82a38116ac10592a6ccbd34800f8ad9f8
  • Vorgänger e5a76ed1
  • Nachfolger 0b84f51f

»with_transaction« anstelle von »do_transaction« verwenden

Es sollte so selten wie möglich »do_transaction« verwndet werden, damit
man sich immer angewöhnt, »with_transaction« zu nutzen.

Hintergründe und Unterschiede zwischen den beiden Funktionen sind in der
Dokumentation von SL/DB.pm beschrieben.

Unterschiede anzeigen:

SL/Controller/Order.pm
893 893
  my ($self) = @_;
894 894

  
895 895
  my $errors = [];
896
  my $db = $self->order->db;
896
  my $db     = $self->order->db;
897 897

  
898
  $db->do_transaction(
898
  $db->with_transaction(
899 899
    sub {
900 900
      my @spoolfiles = grep { $_ } map { $_->spoolfile } @{ SL::DB::Manager::Status->get_all(where => [ trans_id => $self->order->id ]) };
901 901
      $self->order->delete;
......
915 915
  my ($self) = @_;
916 916

  
917 917
  my $errors = [];
918
  my $db = $self->order->db;
918
  my $db     = $self->order->db;
919 919

  
920
  $db->do_transaction(
921
    sub {
922
      SL::DB::OrderItem->new(id => $_)->delete for @{$self->item_ids_to_delete};
923
      $self->order->save(cascade => 1);
920
  $db->with_transaction(sub {
921
    SL::DB::OrderItem->new(id => $_)->delete for @{$self->item_ids_to_delete};
922
    $self->order->save(cascade => 1);
924 923
  }) || push(@{$errors}, $db->error);
925 924

  
926 925
  return $errors;

Auch abrufbar als: Unified diff