Changeset 71

Show
Ignore:
Timestamp:
05/04/06 00:05:22 (4 years ago)
Author:
sky
Message:

r74@crucially-3 (orig r1036): ykerherve | 2005-11-25 06:19:42 -0800
Fixed for multiple primary keys


Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/lib/Data/ObjectDriver/Driver/DBI.pm

    r66 r71  
    223223        ## auto-increment column of some sort, so we don't specify an ID 
    224224        ## at all. 
     225        my $pk = $obj->properties->{primary_key}; 
     226        $pk = [ $pk ] unless ref($pk) eq 'ARRAY'; 
    225227        if(my $generated = $driver->generate_pk($obj)) { 
    226228            ## The ID is the only thing we *are* allowed to change on 
    227229            ## the original object. 
    228             my $id_col = join '_', $obj->properties->{datasource}, 'id'; 
    229             $orig_obj->$id_col($obj->$id_col); 
     230            $orig_obj->$_($obj->$_) for @$pk; 
    230231        } else { 
    231             my $pk = $obj->properties->{primary_key}; 
    232             $pk = [ $pk ] unless ref($pk) eq 'ARRAY'; 
    233232            my %pk = map { $_ => 1 } @$pk; 
    234233            $cols = [ grep !$pk{$_} || defined $obj->$_(), @$cols ];