Hatena::Groupasakura

浅倉卓司@blog風味? このページをアンテナに追加 RSSフィード

Error : RSSが取得できませんでした。

2006-05-03(Wed)

Class::DBI::Sweetで外部結合(など)を使う - Class::DBI::Sweet::More

| 01:08 |  Class::DBI::Sweetで外部結合(など)を使う - Class::DBI::Sweet::More - 浅倉卓司@blog風味? を含むブックマーク  Class::DBI::Sweetで外部結合(など)を使う - Class::DBI::Sweet::More - 浅倉卓司@blog風味? のブックマークコメント

 というわけClass::DBI::Sweetで外部結合(など)を使えるようにしたClass::DBI::Sweet::Moreを作ってみました(CPAN)。


NAME
    Class::DBI::Sweet::More - More sweet Class::DBI::Sweet

SYNOPSIS
        package MyApp::DBI;
        use base 'Class::DBI::Sweet::More'; # change from Class::DBI::Sweet

        ...

        # LEFT OUTER JOIN
        MyApp::CD->has_many(tags => 'MyApp::Tag', {join_type => 'LEFT'});
        MyApp::CD->might_have(liner_notes
            => 'MyApp::LinerNotes' => qw/notes/)->{args}{join_type} = 'LEFT';

        # This is selected not to have tags.
        my @cds = MyApp::CD->search({'tags' => undef});

        # This succeeds even without liner_notes.
        my ($cd) = MyApp::CD->search( { ... },
                           { prefetch => [ qw/liner_notes/ ] } );

        # This is selected to have tags of Blue and Cheesy.
        my @cds = MyApp::CD->search({'tags.tag' => {-and => [qw/ Blue Cheesy /]} });

DESCRIPTION
    Class::DBI::Sweet::More provides OUTER JOIN (and has_many table's search
    option '-and') to "Class::DBI::Sweet".

AUTHOR
    ASAKURA Takuji, "<asakura.takuji+cpan at gmail.com>"

COPYRIGHT & LICENSE
    Copyright 2006 ASAKURA Takuji, all rights reserved.

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

 ……こういうのって、Class::DBI::Sweetの作者にパッチとして送ったほうが良かったのかな。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20060503
2004 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 07 | 10 | 11 | 12 |
2008 | 02 | 03 | 04 | 06 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 02 | 03 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2013 | 01 | 05 | 07 |
2014 | 01 | 02 |
2016 | 01 |
2017 | 01 | 05 |