Doctrine orm 第二条原则:获取;热切的;

Doctrine orm 第二条原则:获取;热切的;,doctrine-orm,zend-framework2,Doctrine Orm,Zend Framework2,在条令中,您可以在实体中设置一个获取模式,通过一个查询获取所有数据,而不是延迟加载所有数据 /** * @ORM\OneToOne(targetEntity="Application\Entity\Categorie" , fetch="EAGER") * @ORM\JoinColumn(name="CAT_ID", referencedColumnName="CAT_ID") * @access protected * @var \Application\Entity\Categori

在条令中,您可以在实体中设置一个获取模式,通过一个查询获取所有数据,而不是延迟加载所有数据

/**
 * @ORM\OneToOne(targetEntity="Application\Entity\Categorie" , fetch="EAGER")
 * @ORM\JoinColumn(name="CAT_ID", referencedColumnName="CAT_ID")
 * @access protected
 * @var \Application\Entity\Categorie
 */
protected $CAT_ID;
我有问题,当这涉及到第三级。 实体“a”与实体“b”有关系。实体“b”与实体“c”有关系。实体“a”和实体“b”在一个查询中被选中,实体“c”在一个查询中与它们分离。我对它们之间的每一个关系都设置了
fetch=“EAGER”


您不需要在第三级处理
fetch=“EAGER”
,也不知道发生了什么问题吗?

我不这么认为,但您可以做的是,只有在必要时才设置EAGER模式

<?php
$query = $em->createQuery("SELECT u FROM MyProject\User u");
$query->setFetchMode("MyProject\User", "address", \Doctrine\ORM\Mapping\ClassMetadata::FETCH_EAGER);
$query->execute();