テーブル情報として academics table(大学)
、laboratories table(研究室(大学と紐付いている))
、members table(研究員(研究室と紐付いている))
、research_papers table(研究論文(研究員と紐付いていて研究員とはOneToManyの関係))
といったものがあると仮定します。同時にそれに対応したEntityも存在するものとします。
そこで以下のようなクエリを叩いたとします。
php
1$result = $this 2 ->getEntityManager() 3 ->createQueryBuilder('a') // a: academic 4 ->leftJoin('a.laboratory','l') 5 ->leftJoin('l.member','m') 6 ->leftJoin('m.researchPaper','rp') 7 ->where('a.name = :academicName') 8 ->andWhere('l.id = :laboratoryId') 9 ->andWhere('m.age <= :age') 10 ->setParameter('academicName', $academicName) 11 ->setParameter('laboratoryId', $laboratoryId) 12 ->setParameter('age', $age) 13 ->getQuery() 14 ->getResult() 15; 16 17$reserchPaoer = $result[0]->getResearchPaper(); // $resultは配列なので例えば0を選択したとする 18$member = $result[0]->getMember();
上記では叩かれるクエリは$resultの1回だけでしょうか?
それともクエリが3回叩かれることになるのでしょうか?
Lazy LoadingとEager Loadingについて学んでいまして、そこでふと疑問に思い質問させていただきました。
回答宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。