DBIx :: Class结果集在没有select的情况下创建相关数据

时间:2012-07-25 21:42:49

标签: perl dbix-class perl5

我正在尝试做类似的事情:

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

其中Bar是另一个表Bar的belongs_to关系,带有自动递增的主键。

问题在于幕后,dbix总是在选择并在Bar中查找现有行,其中Property ='non-unique',并将该行的PK插入Foo。我希望它做的是每次使用新的自动生成的主键在Bar中创建一个新行。

有没有办法告诉DBIx不要先搜索匹配的相关行,而是强制它始终创建相关的行?

1 个答案:

答案 0 :(得分: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);