Hi, I am trying to execute the following query:

$user->groups->search_related('items', { contact_id => $contact->id })->delete;

which is generating this SQL:
DELETE FROM `djd_group_items` WHERE ( ( ( `contact_id` = ? ) AND (
`user_id` = ? ) ) )

which makes no sense because user_id doesnt exist on that table....

my table definitions are short and attached below.  can anyone help? i
am deeply confused about this one. im running of -current right now
but it was failing with _05 as well.


###  $user is a JidMap row object
package DJabberd::RosterStorage::Schema::JidMap;

use strict;
use warnings;

use base 'DBIx::Class';

__PACKAGE__->load_components("PK::Auto", "Core");
__PACKAGE__->table("djd_jidmap");
__PACKAGE__->add_columns("id", "jid");

__PACKAGE__->set_primary_key("id");
__PACKAGE__->add_unique_constraint(jid => ["jid"]);

#GroupItems
__PACKAGE__->has_many('in_roster_groups' =>
                      'DJabberd::RosterStorage::Schema::GroupItems',
                      'contact_id');
#Rosters
__PACKAGE__->has_many('roster_items' =>
                      'DJabberd::RosterStorage::Schema::Rosters',
                      'user_id');
__PACKAGE__->has_many('in_roster_of' =>
                      'DJabberd::RosterStorage::Schema::Rosters',
                      'contact_id');
#RosterGroups
__PACKAGE__->has_many('groups' =>
                      'DJabberd::RosterStorage::Schema::RosterGroups',
                      'user_id');
1;

## $user->groups is this resultset
package DJabberd::RosterStorage::Schema::RosterGroups;

use strict;
use warnings;

use base 'DBIx::Class';

__PACKAGE__->load_components("PK::Auto", "Core");
__PACKAGE__->table("djd_roster_groups");
__PACKAGE__->add_columns("id", "user_id", "name");

__PACKAGE__->set_primary_key("id");
__PACKAGE__->add_unique_constraint(user_name => ["id","name"]);

__PACKAGE__->belongs_to
    ('user' => 'DJabberd::RosterStorage::Schema::JidMap',
     'user_id');

__PACKAGE__->has_many
    ('items' => 'DJabberd::RosterStorage::Schema::GroupItems',
     'group_id');
1;

## and finally this is the related resultset
package DJabberd::RosterStorage::Schema::GroupItems;

use strict;
use warnings;

use base 'DBIx::Class';

__PACKAGE__->load_components("PK::Auto", "Core");
__PACKAGE__->table("djd_group_items");
__PACKAGE__->add_columns("group_id", "contact_id");

__PACKAGE__->set_primary_key("group_id","contact_id");

__PACKAGE__->belongs_to
    ('group' => 'DJabberd::RosterStorage::Schema::RosterGroups',
     'group_id');

__PACKAGE__->belongs_to
    ('contact' => 'DJabberd::RosterStorage::Schema::JidMap',
     'contact_id');

1;

_______________________________________________
List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
Wiki: http://dbix-class.shadowcatsystems.co.uk/
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
Searchable Archive: http://www.mail-archive.com/[email protected]/

Reply via email to