1

私はこれに似た何かをしようとしています:

$schema->resultset('Foo')->create({ Property => 1,
                                       Bar => { 
                                                Property => 'non-unique',
                                             },
                                      });

ここで、Bar は、自動インクリメントの主キーを持つ別のテーブル Bar への belongs_to リレーションです。

問題は、舞台裏で dbix が常に選択を行い、Property = 'non-unique' で Bar 内の既存の行を見つけ、その行の PK を Foo に挿入していることです。代わりに、自動生成された新しい主キーを使用して、毎回 Bar に新しい行を作成することをお勧めします。

一致する関連行を最初に検索しないようにDBIxに指示する方法はありますか?

4

1 に答える 1

2

create_related() または new_reated() 後者は関連オブジェクトを作成し、前者はオブジェクトを作成して DB に保存します。

したがって、'bars' と呼ばれる Foo->Bar の関係を考えると、次のようになります。

 $foo = $schema->resultset('Foo')->create({ Property => 1 });
 $bardata = {Property => 'non-unique'};                            
 $foo->create_related('bars', $bardata);
于 2012-07-26T15:43:17.770 に答える