2014-04-04 93 views
0

这是实体关系的经典方法;Symfony2 - 实体和关系注释

/** 
* @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代码。我再次使用连接功能。在这种情况下是否需要关系注释?我是否还需要添加此注释?

回答

0

不幸的是,没有办法做你在问什么。你将不得不编写一个自定义的DQL,最好在自定义存储库中,以获取你想要的。当然,你仍然需要注释本身,正如理论所要求的那样,在底层做许多事情,并且一般来说,要在你的实体之间保持良好的关系模型。

你必须控制在其中的关系是使用自动方法时,加入的方式最为接近的注释是OrderBy一个:

/* 
* @OneToMany(...) 
* @OrderBy({"name" = "ASC"}) 
*/ 
protected $relation;