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]/