logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Class::DBI::Cascade::None - Do nothing upon deletion

Constructor

new
               my $strategy = Cascade::Class->new($Relationship);

       This must be instantiated with a Class::DBI::Relationship object.

Description

       This is a Cascading Delete strategy that will do nothing, leaving orphaned records behind.

       It is the base class for most ofther Cascade strategies, and so provides several important methods:

Methods

foreign_for
               my $iterator = $strategy->foreign_for($obj);

       This will return all the objects which are foreign to $obj across the relationship. It's a normal
       Class::DBI search you can get the results either as a list or as an iterator.

   cascade
               $strategy->cascade($obj);

       Cascade across the related objects to $obj.

Name

       Class::DBI::Cascade::None - Do nothing upon deletion

Writing New Strategies

       Creating a Cascade strategy should be fairly simple. You usually just need to inherit from here, and then
       supply a cascade() method that does the required thing with the results from foreign_for().

       So, for example, Cascade::Delete is implemented simply as:

               package Class::DBI::Cascade::Delete;

               use base 'Class::DBI::Cascade::None';

               sub cascade {
                       my ($self, $obj) = @_;
                       $self->foreign_for($obj)->delete_all;
               }

perl v5.34.0                                       2022-03-28                     Class::DBI::Cascade::None(3pm)

See Also