Reworked Manual::Intro to use load_namecpaces
[dbsrgits/DBIx-Class-Historic.git] / lib / DBIx / Class / Row.pm
index 424d750..3e0bf64 100644 (file)
@@ -58,7 +58,7 @@ sub __new_related_find_or_new_helper {
     return $self->result_source
                 ->related_source($relname)
                 ->resultset
-                ->find_or_new($data);
+                ->find_or_create($data);
   }
   return $self->find_or_new_related($relname, $data);
 }
@@ -265,7 +265,7 @@ sub insert {
         my $reverse = $source->reverse_relationship_info($relname);
         foreach my $obj (@cands) {
           $obj->set_from_related($_, $self) for keys %$reverse;
-          my $them = { $obj->get_columns };
+          my $them = { $obj->get_inflated_columns };
           if ($self->__their_pk_needs_us($relname, $them)) {
             $obj = $self->find_or_create_related($relname, $them);
           } else {
@@ -378,7 +378,7 @@ sub delete {
   my $self = shift;
   if (ref $self) {
     $self->throw_exception( "Not in database" ) unless $self->in_storage;
-    my $ident_cond = $self->ident_condition;
+    my $ident_cond = $self->{_orig_ident} || $self->ident_condition;
     $self->throw_exception("Cannot safely delete a row in a PK-less table")
       if ! keys %$ident_cond;
     foreach my $column (keys %$ident_cond) {
@@ -836,14 +836,13 @@ second argument to $resultset->search($cond, $attrs);
 sub get_from_storage {
     my $self = shift @_;
     my $attrs = shift @_;
-    my @primary_columns = map { $self->$_ } $self->primary_columns;
     my $resultset = $self->result_source->resultset;
     
     if(defined $attrs) {
        $resultset = $resultset->search(undef, $attrs);
     }
     
-    return $resultset->find(@primary_columns); 
+    return $resultset->find($self->{_orig_ident} || $self->ident_condition);
 }
 
 =head2 throw_exception