这是实体关系的经典方法;
/**
* @ORM\OneToMany(targetEntity="Product", mappedBy="category")
*/
protected $products;
和其他实体;
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;
但是,当我使用这种方法时,我不能使用限制功能。取得所有结果。但是,我应该使用sql限制功能。所以,我使用了一个存储库类。我再次写了所有的sql代码。我再次使用了join函数。在这种情况下,relationsip注释是否必要?我还需要添加此注释吗?
答案 0 :(得分:0)
不幸的是,没有办法做你想问的事。您将不得不编写自定义DQL,最好是在自定义存储库中,以便准确地获取您想要的内容。当然,你仍然需要注释本身,正如Doctrine所要求的那样,需要做很多事情,并且通常要在你的实体之间保持良好的关系模型。
使用自动方法控制关联关联方式时,最接近的注释是OrderBy
一个:
/*
* @OneToMany(...)
* @OrderBy({"name" = "ASC"})
*/
protected $relation;