0
下面表中的字段是我(简化)范畴实体:访问加入Doctrine2
/**
* @ORM\Entity
*/
class Category
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id = null;
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="children", fetch="EAGER")
*/
protected $parent = null;
/**
* @ORM\OneToMany(targetEntity="Category", mappedBy="parent", fetch="LAZY")
* @ORM\JoinTable(name="category_tree",
* joinColumns={@ORM\JoinColumn(name="parent_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="child_id", referencedColumnName="id")}
*)
*/
protected $children;
}
我可以写一个DQL查询它会给我一个结果和对每个类别:
- 其ID
- 其子女的IDS
在SQL它非常简单,当然是一个数组,但加入标签在学说中似乎是透明的。
这在DQL中不起作用。在DQL中,您最终可以从http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#joins – Ocramius 2013-02-18 14:13:58
中获取 - 加入关联项我已经在做fetch-join了,但是因为我只需要连接主表的ID,所以我愿意留出一大笔开销。我将继续使用取指连接。谢谢。 – Ninj 2013-02-18 14:44:10