__PACKAGE__->has_one( 'related', 'Class', { 'foreign.a' => 'self.a',
'foreign.b' => 'self.b' } );
__PACKAGE__->might_have( 'related', 'Class', { 'foreign.a' => 'self.a'}, {
where => { 'foreign.b' => { '!=' => 'not needed' } }} );
PS: но если встречаются такие запросы, то проблема скорее всего не в
DBIx::Class, а в логике проекта, IMHO...

2009/11/12 Alexander Q <[email protected]>

> В Чтв, 12/11/2009 в 15:58 +0300, Андрей Костенко пишет:
> > Спорим, флейма не будет?)
> > 1. С DBIx::Class sql в коде не понадобится. Всё делается очень удобно
> > и красиво
> > 2. DBIx::Class очень быстрый, а последнее узкое место в нём (неXSные
> > accessor-ы) исправят буквально на днях
>
> Ситуция такова:
>
> create table a (
>  id integer primary key,
>  value text
> );
>
> create table b (
>  id integer primary key,
>  value text
> );
>
> create table c (
>  id integer primary key,
>  a integer references a(id),
>  b integer references b(id)
> );
>
> create table d (
>  id integer primary key,
>  a integer references a(id),
>  b integer references b(id)
> );
>
> хочу спросить, SELECT * FROM c JOIN d ON c.a = d.a AND c.b = d.b;
> и вот тут DBIx::Class мне не помощник вообще.
>
> Плох он так же в ситуации, когда я хочу
> SELECT * FROM b LEFT JOIN a ON a.id = b.a AND a.value != 'not needed';
>
> Я чего-то не знаю про DBIx::Class? Или это настолько редкие случаи, что
> они не считают нужным такое поддерживать?
>
> --
> Alexander Q <[email protected]>
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить