Perl 转换SQL查询

Perl 转换SQL查询,perl,catalyst,dbix-class,Perl,Catalyst,Dbix Class,我有一个SQL查询,它从sqlplus获取数据。当我尝试转换查询以便在catalyst控制器中实现时,我收到一条错误消息,说tables功能和Featurealias之间没有关系。由于我是catalyst和DBIx::Class的新手,我无法找出可能的错误。有人能帮我解决这个问题吗。 下面是我试图在catalyst Controller中实现的SQL查询和代码 my@sourceid=$c->model('Gene::Featurealias')->search({

我有一个SQL查询,它从sqlplus获取数据。当我尝试转换查询以便在catalyst控制器中实现时,我收到一条错误消息,说tables功能和Featurealias之间没有关系。由于我是catalyst和DBIx::Class的新手,我无法找出可能的错误。有人能帮我解决这个问题吗。 下面是我试图在catalyst Controller中实现的SQL查询和代码

my@sourceid=$c->model('Gene::Featurealias')->search({
                        'feature.typeid'=>4,
        },
        {
                        join=>'feature',
                        distinct=>1,
                        columns=>[qw/sourceid/]

        });
SQL查询:

select distinct FeatureAlias.SourceID From FeatureAlias join Feature on FeatureAlias.FeatureID=Feature.FeatureID where Feature.TypeID=4;
在Feature.pm中定义

__PACKAGE__->has_many( "featurealias",
  "...Result::Featurealias");
在Featurealias.pm中定义

__PACKAGE__->belongs_to("featureid",
  "...::Result::Feature");

提前感谢。

您在Featurealias类中创建了一个名为“featureid”的关系,但要求DBIC加入一个名为“feature”的关系。

谢谢您的回复。当我给featureid而不是feature时,它仍然会标记错误。如果你能详细说明你的评论,这将是非常有帮助的,因为我是这个领域的新手。再次感谢。请包括整个类,而不仅仅是关系定义。