else {
$res_args[$_] ||= {};
+ # hate everywhere - have to pass in as a plain hash
+ # pretending to be an object at least for now
$self->throw_exception("Unsupported object-like structure encountered: $res_args[$_]")
unless ref $res_args[$_] eq 'HASH';
-
- # hate everywhere
- $res_args[$_] = $self->relationship_info($rel_name)->{source}->result_class->new($res_args[$_]);
}
}
my $args = {
condition => $cond,
- rel_name => $rel_name,
- $is_objlike[1] ? ( self_alias => $res_args[0], foreign_alias => 'me', self_resultobj => $res_args[1] )
- : $is_objlike[0] ? ( self_alias => 'me', foreign_alias => $res_args[1], foreign_resultobj => $res_args[0] )
- : ( self_alias => $res_args[1], foreign_alias => $res_args[0] )
+
+ # where-is-waldo block guesses relname, then further down we override it if available
+ (
+ $is_objlike[1] ? ( rel_name => $res_args[0], self_alias => $res_args[0], foreign_alias => 'me', self_resultobj => $res_args[1] )
+ : $is_objlike[0] ? ( rel_name => $res_args[1], self_alias => 'me', foreign_alias => $res_args[1], foreign_resultobj => $res_args[0] )
+ : ( rel_name => $res_args[0], self_alias => $res_args[1], foreign_alias => $res_args[0] )
+ ),
+
+ ( $rel_name ? ( rel_name => $rel_name ) : () ),
};
#######################
self_resultsource => $self,
self_alias => $args->{self_alias},
foreign_alias => $args->{foreign_alias},
- self_resultobj => (defined $args->{self_resultobj} ? $args->{self_resultobj} : undef),
- foreign_resultobj => (defined $args->{foreign_resultobj} ? $args->{foreign_resultobj} : undef),
+ self_resultobj => $args->{self_resultobj},
+ foreign_resultobj => $args->{foreign_resultobj},
};
# legacy - never remove these!!!
;
for my $i (0..$#$obj_cols) {
- if (defined $args->{self_resultobj} and ! $obj->has_column_loaded($obj_cols->[$i])) {
+
+ # FIXME - temp shim
+ if (! blessed $obj) {
+ $cond->{"$plain_alias.$plain_cols->[$i]"} = $obj->{$obj_cols->[$i]};
+ }
+ elsif (
+ defined $args->{self_resultobj}
+ and
+ ! $obj->has_column_loaded($obj_cols->[$i])
+ ) {
$self->throw_exception(sprintf
"Unable to resolve relationship '%s' from object '%s': column '%s' not "