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を使わないようにしてまする。

ごめんなさいごめんなさい。

ぜんぜん違うネタを下に書いて逃げようとしてました。

ごめんなさいごめんなさい。