如何在Doctrine中自动选择所有关系?

时间:2018-02-06 19:17:14

标签: php symfony doctrine-orm doctrine

我有相当多的类通过各种关系相互关联(OneToOne,OneToMany,ManyToOne以及Class-和Joined Inheritance,后者又有多种关系。

当我想通过一个简单的->findAll()选择所有父类时,我会为每个实体获得大约10个额外查询。通过使用->leftJoin()->addSelect()取消查询构建器,我可以在有限的范围内减少此数量。有些关系不会加入,因为reasons。尽管如此,它还是一个非常令人讨厌的长addSelect()个列表。有没有办法自动加入和选择所有关系?

2 个答案:

答案 0 :(得分:0)

尝试使用" JoinTable"或者" JoinColumn"

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#jointable

答案 1 :(得分:0)

可以通过将关联的获取模式设置为eager来实现自动连接(例如,在ManyToOne上:

Header always set x x

,请参阅the docs

要以编程方式设置提取模式,请参阅another StackOverflow question