学说 - 在一个查询中获得实体和关系



我是否错过了学说的观点?这对于某些情况非常有用,但是对于使用ID检索实体的基本情况(例如,使用find(find()或findOneby()),为什么您会看到每种关系都触发查询以填充主要实体的属性?

肯定是通过我创建的映射/注释,学说应该能够加入一些和一个查询,而无需为每个实体的检索编写DQL查询。

或者,正如我预测的那样,我错过了某个地方的重点!

只需将相关实体的别名添加到查询的select部分。

假设您有BookCover相关的一对多,因此您想要一些带有封面的书籍。

使用查询构建器,使用:

->createQueryBuilder()
->select("book, cover")
->from("Book", "book")
->leftJoin("book.covers", "cover")

使用查询,使用:

SELECT book, cover FROM Book book LEFT JOIN book.covers cover

结果,您将收到带有预置$covers收藏的Book的集合。

,因为仅在需要时与关系进行水合 - 默认情况下使用懒惰的策略。如果您已经知道您将访问相关实体,则应构建一个检索记录和相关实体的DQL查询。

相关内容

  • 没有找到相关文章

最新更新