add_unique_constraintで行かない
naoyaさんから突っ込まれましたが、まさにそのとおしでした><;
http://naoya.g.hatena.ne.jp/naoya/20061117/1163769268
ふつうにadd_unique_constraintしていなくても
my $user = $self->model('User')->find(
{
rid => 'WFC2nT4MLl'
}
);
これできますね。
普通に$self->searchしてるだけですし。
$rs->_resolved_attrs->{collapse}を見て、
$rs->nextにするか$rs->singleにするかを分けてるだけ。
ちなみに、
my $user = $self->model('User')->find(
{
hoge_id => 11
},
{
order_by => 'me.id ASC'
}
);
こういう感じでsearchと同じ用に渡すことも可能。
でした。
混乱させた皆様ご迷惑をおかけいたしました。
ちなみにDBICのMLでも流れてるネタですが、
my $user = $self->model('User')->search(undef,undef);
これはできません。
エラーになります。
Use of uninitialized value in anonymous hash ({}) at
こんな感じで。
- >search({ undef => undef });
こういう風に解釈されるからですね。
その為、
SELECT me.* FROM user me WHERE ( IS NULL )
こういうSQLになってしまいます。
なので、私は意識的に、
- >search({},{order_by => 'me.id DESC'});
見たいな感じで検索条件の引数はundefを使わないようにしてまする。
ごめんなさいごめんなさい。
ぜんぜん違うネタを下に書いて逃げようとしてました。
ごめんなさいごめんなさい。