use warnings;
use Tie::IxHash;
-use base qw/Class::Data::Inheritable DBIx::Class::SQL/;
+use base qw/Class::Data::Inheritable/;
__PACKAGE__->mk_classdata('_primaries' => {});
my ($class, @vals) = @_;
my $attrs = (@vals > 1 && ref $vals[$#vals] eq 'HASH' ? pop(@vals) : {});
my @pk = keys %{$class->_primaries};
- die "Can't retrieve unless primary columns are defined" unless @pk;
+ $class->throw( "Can't retrieve unless primary columns are defined" )
+ unless @pk;
my $query;
if (ref $vals[0] eq 'HASH') {
$query = $vals[0];
} else {
$query = {@vals};
}
- die "Can't retrieve unless all primary keys are specified"
+ $class->throw( "Can't retrieve unless all primary keys are specified" )
unless (keys %$query >= @pk); # If we check 'em we run afoul of uc/lc
# column names etc. Not sure what to do yet
my $ret = ($class->search($query))[0];
$self->in_database(0);
return $self;
}
- $self->store_column($_ => $reload->get_column($_))
- foreach keys %{$self->_columns};
+ delete @{$self}{keys %$self};
+ @{$self}{keys %$reload} = values %$reload;
+ #$self->store_column($_ => $reload->get_column($_))
+ # foreach keys %{$self->_columns};
return $self;
}
sub id {
my ($self) = @_;
- die "Can't call id() as a class method" unless ref $self;
+ $self->throw( "Can't call id() as a class method" ) unless ref $self;
my @pk = $self->_ident_values;
return (wantarray ? @pk : $pk[0]);
}