我的架构中有父/子关系。我想使用非常相似的代码来修改现有的父级以创建一个新的父级。编辑案例很容易找到孩子:
my $parent = $resultset->find($parent_id);
my @children = $parent->children->all
但是,在新案例中,发生了一些奇怪的事情:
my $parent = $resultset->new_result({});
my @children = $parent->children->all;
我预计必须@children
是空的,但我取回了所有的孩子,不管父母是谁。
我可以做这样的事情(对于每个相关记录访问器,vomit):
sub children {
my $self = shift;
my $res = $self->next::method(@_);
my $parent_no = $self->get_column('parent_no');
defined $parent_no ? $res : $res->search({1 => 2});
}
请告诉我执行此操作的正确方法,因为以上不能是它。
版本: 0.08010,因为这是 Debian Lenny 所拥有的(以及我们的生产服务器正在运行的)