我有相当多的类通过各种关系(一对一,一对多,多对一以及类继承和联合继承)相互关联,而这些关系又具有多种关系。
当我想通过一个简单的->findAll()
选择所有父类时,每个实体都会得到大约 10 个额外的查询。我可以通过取消具有->leftJoin()
和->addSelect()
的查询构建器来有限地减少此数字。有些关系没有加入,因为原因。尽管如此,它还是得到了一个相当讨厌的长addSelect()
列表。有没有办法自动加入和选择所有关系?
自动连接可以通过将关联的获取模式设置为eager 来实现(例如,在 ManyToOne 上:
/**
* @ManyToOne(targetEntity="Cart", cascade={"all"}, fetch="EAGER")
*/
,请参阅文档)
要以编程方式设置获取模式,请参阅另一个 StackOverflow 问题。
尝试使用 "JoinTable" 或 "JoinColumn">
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#jointable