4
foreign.weirdkey => substr(self.key, 1, 9)
相連的兩個類的子...並不能爲我的生活弄清楚如何構建的has_many調用指示此。
底層數據庫(一組Oracle表)沒有定義外鍵,是固定的,並且超出了我的控制範圍。
我已經通過了文檔,似乎無法找到一個將在has_many手冊定義範圍內工作的語法。
任何幫助將不勝感激。
foreign.weirdkey => substr(self.key, 1, 9)
相連的兩個類的子...並不能爲我的生活弄清楚如何構建的has_many調用指示此。
底層數據庫(一組Oracle表)沒有定義外鍵,是固定的,並且超出了我的控制範圍。
我已經通過了文檔,似乎無法找到一個將在has_many手冊定義範圍內工作的語法。
任何幫助將不勝感激。
這樣的事情應該工作:
__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)
})
});
請注意,我用Perl的SUBSTR如果您有當前行對象,所以再加入將摺疊成僅僅是一個WHERE子句,並不會使用數據庫弦消失。如果您遇到問題,請將其取出或撥動。 DBIC_TRACE應該清楚發生了什麼。
此處的文檔:https://metacpan.org/pod/DBIx::Class::Relationship::Base#condition