0

Symfony2 createNativeQueryとの最初の結合を設定しようとしています。

結合なしで最初のものを作成しましたが、問題はありません。

私のコードに従うために、いくつかのステップを失ったと思います:

$rsm = new ResultSetMapping;

        $rsm
            ->addEntityResult('Art\ArticleBundle\Entity\ArticleData', 'ad')
//          ->addEntityResult('Art\ArticleBundle\Entity\Article', 'a')
//          ->addFieldResult('ad', 'id', 'article_data_id')
            ->addJoinedEntityResult('Art\ArticleBundle\Entity\Article', 'a', 'ad', 'article')
            ->addFieldResult('a', 'date_article', 'dateArticle');

        $query = $this->_em->createNativeQuery(
            'SELECT ad.id AS article_data_id, ad.title, ad.abstract '
            . 'FROM art_article_data ad '
            . 'INNER JOIN art_article ON (ad.article_id = a.id) '
            ,
            $rsm
        );

        return $query->getResult();

次のエラーが返されます: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'a.id' in 'on clause'")

なぜa.id不明なのですか?エンティティとテーブル内にあります。私が失ったステップは何ですか?

4

2 に答える 2

0

クエリは次のようになります。

$query = $this->_em->createNativeQuery(
        'SELECT ad.id AS article_data_id, ad.title, ad.abstract '
        . 'FROM art_article_data ad '
        . 'INNER JOIN art_article a ON (ad.article_id = a.id) '
        ,
        $rsm
    );

のエイリアスがありませんでしたart_article

于 2014-03-10T17:34:09.443 に答える