我有以下课程:
class Category {
/**
* @ORM\OneToMany(targetEntity="Product", mappedBy="category")
*/
private $products;
...
}
class Product {
...
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
private $category;
...
}
当我尝试从我的数据库中获取一个产品时:
$query = $doctrineManager->createQuery(
"
SELECT p FROM AppBundle:Product p
WHERE p.id = :id
"
)->setParameter('id', $id);
$result = $query->getSingleResult();
我不仅获得product
,还获得category
所有产品(我找到的产品除外)。那么,如何在没有相关模型的情况下仅获取我想要的模型呢?
答案 0 :(得分:5)
它们只是存根,除非您使用fetch = EAGER,否则您实际上不会获取任何相关的实体信息。
这个答案很好地解释了。
What is the difference between fetch="EAGER" and fetch="LAZY" in doctrine
总之,您无法摆脱关联,但除非您特别要求,否则他们不会加载其他实体,除非您调用数据。所以不用担心。