DBIx-DataModel

 view release on metacpan or  search on metacpan

lib/DBIx/DataModel/Doc/Delta_v3.pod  view on Meta::CPAN


=item 3.

issuing the database request

=back

More precisely, the skeleton for the C<update()> method looks like this :


  sub update  {
    my $self = shift;

    # prepare datastructures for generating the SQL
    my ($to_set, $where) = $self->_parse_update_args(@_);

    # transform the data if necessary
    $self->_apply_handlers_for_update($to_set, $where);

    # database request 
    ...

lib/DBIx/DataModel/Source/Table.pm  view on Meta::CPAN

  }

  # THINK : instead of removing references to foreign objects, one could
  # maybe perform recursive updates (including insert/update/delete of child
  # objects)
}




sub update  {
  my $self = shift;

  # prepare datastructures for generating the SQL
  my ($to_set, $where) = $self->_parse_update_args(@_);
  $self->_apply_handlers_for_update($to_set, $where);

  # database request
  my $schema       = $self->schema;
  my $sqla         = $schema->sql_abstract;
  my ($sql, @bind) = $sqla->update(

t/v2_db_schema.t  view on Meta::CPAN

use FindBin;
use lib "$FindBin::Bin/lib";
use DBIDM_Test qw/die_ok sqlLike HR_connect $dbh/;

HR_connect;
my $schema = 'HR';

# override the update method in one of the generated classes
package HR::Department;
use DBIx::DataModel::Meta::Utils qw/does/;
sub update {
  my $self      = shift;
  my $to_update = $_[-1];

  if (does($to_update, 'HASH')) {
    $to_update->{__UPDATE_METHOD} = 'was_overridden';
  }
  return $self->next::method(@_);
}

package main;

t/v2_multischema.t  view on Meta::CPAN

use FindBin;
use lib "$FindBin::Bin/lib";
use DBIDM_Test qw/die_ok sqlLike HR_connect $dbh/;
use Test::More;


# override the update method in one of the generated classes
package HR::Department;
use DBIx::DataModel::Meta::Utils qw/does/;

sub update {
  my $self      = shift;
  my $to_update = $_[-1];

  if (does($to_update, 'HASH')) {
    $to_update->{__UPDATE_METHOD} = 'was_overridden';
  }
  return $self->next::method(@_);
}

# back to main package



( run in 0.250 second using v1.01-cache-2.11-cpan-4d4bc49f3ae )