Symfony. Doctrine. Выборка родительской сущности вместе со связанными

Всем привет! Такой вопрос: есть некая сущность А, связана с сущностью B отношением многие ко многим:

class A {
/**
 * @var B[]
 *
 * @Doctrine\ORM\Mapping\OneToMany(targetEntity="B", mappedBy="a", cascade={"persist"})
 */
 protected $b
}

/**
 * return B[]
 */
public function getB(): array
{
   return $this->b
}
class B {
/**
 * @var A
 *
 * @Doctrine\ORM\Mapping\ManyToOne(targetEntity="A", inversedBy="b", cascade={"persist"})
 */
protected $a;

Когда мне надо получить только модели сущности А, то недолго думая, делаю выборку:

$entitiesA = $repositoryOfEntityA->findBy([...]);

Когда я бегу по $entitiesA в цикле и обращаюсь в связанным сущностям:

foreach($entitiesA as $entityA) {
   $entityA->getB();
}

я каждый раз делаю запрос к БД, что и логично.

Как можно сформировать запрос, чтобы связанные записи В автоматом выбирались из БД, подгрудались в сущность А, и при вызове getB(), они возвращались из памяти? Но надо оставить возможность получать и только сущности А при необходимости.


Ответы (0 шт):