Perl 类在列的子字符串上有许多连接
我有两个类链接在Perl 类在列的子字符串上有许多连接,perl,dbix-class,Perl,Dbix Class,我有两个类链接在 foreign.weirdkey => substr(self.key, 1, 9) …而且我一辈子都搞不懂如何构造has_许多调用来表示这一点 底层数据库(一组Oracle表)不定义外键,是固定的,不受我的控制 我浏览了文档,似乎找不到一种语法可以在手册的许多定义范围内工作 任何帮助都将不胜感激。像这样的东西应该可以: __PACKAGE__->has_many( baubles => 'My::Schema::Result::Thing', sub {
foreign.weirdkey => substr(self.key, 1, 9)
…而且我一辈子都搞不懂如何构造has_许多调用来表示这一点
底层数据库(一组Oracle表)不定义外键,是固定的,不受我的控制
我浏览了文档,似乎找不到一种语法可以在手册的许多定义范围内工作
任何帮助都将不胜感激。像这样的东西应该可以:
__PACKAGE__->has_many( baubles => 'My::Schema::Result::Thing', sub {
my $args = shift;
return ({
"$args->{foreign_alias}.weirdkey" => \"substr($args->{self_alias}.key, 1, 9)",
},
$args->{self_rowobj} && {
"$args->{foreign_alias}.weirdkey" => substr($args->{self_rowobj}->key, 1, 9)
})
});
请注意,如果您有当前的row对象,我将使用perl的substr,因此连接将折叠成一个where子句,而不使用数据库进行字符串搜索。如果你有问题,就把它拿走或者摆弄一下。DBIC_TRACE应该清楚发生了什么
此处的文档: