2012-05-08 12 views
1

personID,employeeapplicantの3つのエンティティを持っています。Symfony2フォーム、エンティティタイプ(Doctrine2)を持つたくさんのクエリー

エンティティpersonは、vars employeeapplicantとOneToOneの関係を持ちます。

従業員および応募者は、IDreferencedColumnName="id"、および関係OneToOneという人物を持っています。

ファイン、私はすべてのapplicantsで選択した入力を表示するには、エンティティpersonでフォームを作成すると、Doctrine2のファジー・ロードのおかげでクエリが各personを取得するために作る、ということを意味し、各関連候補と関連empleado、 bd 2000人は、名前だけを表示するために約6000件のリクエストを行っています。

{{ form_rest(formularioEnlazarCandidato.person) }} 

をそしてDoctrine2がquerysの多くを実行します。

私はビューでこれを入れた場合、私は、フォーム、何の問題を印刷しますが、ない場合は

これを修正する方法がわかりません。フォームにエンティティを表示すると、per.idper.nameを選択するだけです。

答えて

0

私は同様の問題を抱えていて、彼らは私を助けました - ここを見てOptimize DQL with double join。基本的には、あなたのリポジトリにfetch joinが必要です - 私はしました:

class ProfileRepository extends EntityRepository { 

    public function findAll() 
    { 
     $em = $this->getEntityManager(); 
     $qb = $em->createQueryBuilder() 
       ->select("p, stu, sta, pdd, pdt, pdc") 
       ->from('AldenBonBundle:Profile', 'p') 
       ->leftJoin('p.studies', 'stu') 
       ->leftJoin('stu.statute', 'sta') 
       ->leftJoin('p.disabilityDegree', 'pdd') 
       ->leftJoin('p.disabilityType', 'pdt') 
       ->leftJoin('p.disabilityCode', 'pdc') 
       ->orderBy('p.profileId') 
     ; 
     $res = $qb->getQuery()->getResult(); 
     return $res; 
    } 
関連する問題