【发布时间】:2011-01-07 13:39:38
【问题描述】:
当在 DBIx::Class ResultSource 上使用 new() 方法来创建(可能是临时的)变量时,它似乎没有使用 DBIC 模式中指定的默认值填充属性(我们已指定用于创建来自该架构的表)。
目前,我们正在为一个这样的类创建一个默认值(这是一个问题的第一种情况)
sub new {
my $class = shift;
my $self = $class->next::method(@_);
$self->queue('DEFAULT_QUEUE_VAL') unless $self->queue();
return $self;
}
在该类中(即属性 queue=>DEFAULT_QUEUE_VAL)。但是,从长远来看,我们有几个 DBIC 类具有不同的默认值,我们希望避免在所有不同的情况下重复上述逻辑。
是否有任何可用的 CPAN 模块/插件来执行此操作?我们在(诚然粗略的)CPAN 搜索中没有看到任何内容。
编辑:修复了代码示例中的一些垃圾;原来我是从过时的代码中复制出来的。
【问题讨论】:
-
值得注意的是,如果您的默认值不是一个简单的值(例如,它是一个 SQL 函数调用),那么任何此类技术都会中断。如果可能,建议您将行插入数据库(为了安全起见,可能在事务中)并查询回列值。如果该技术不起作用,请仅执行您要求的操作。
标签: perl dbix-class