I have two tables joined by a "belongs to" and a "has many" relationship
      Ddref
           idref iduser finished created
           n    n--------------+
           ^                   ¦
           ¦                   ¦RefUser (bt iduser)
           ¦UserRef (hm)       ¦
           ¦                   ¦
           1     1<------------+
           Dduser
           iduser email id_credit

idref is a primary key for Ddref
iduser is a pk for Dduser

In Dduser.pm
__PACKAGE__->belongs_to(RefUser=> 'Dbc::Schema::Result::Dduser',  
{'foreign.iduser' => 'self.iduser'});

In Dduser.pm
__PACKAGE__->has_many(UserRef => 'Dbc::Schema::Result::Ddref',  
{'foreign.iduser' => 'self.iduser'});


I would like to update the field id_credit in Ddref :
my $href2 = {
                  '+select' => [  'RefUser.id_credit', 'RefUser.email'], 
                        '+as' => [qw/id_credit email/],
                  order_by => 'created', 
                  join => ['RefUser']};

my $href = {idref => 24 };
my $rs1 = $s->resultset('Ddref')->search_rs($href, $href2);
my $row = $rs1->single;
        $row->set_column('id_credit' => 28);
        $row->update();

But update fails with since the sql is
UPDATE ddrefs SET id_credit = ? WHERE ( idref = ? )" with ParamValues: 0=28, 
1='24'

Obviously the join is lost. What am I missing ?
Thanks


François

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk

Reply via email to