学说:从一对多关系中检索有序的单个实体



假设以下结构数据库结构 - 一个类别有许多文章,一篇文章有很多注释:

Category:
- id
Article:
- id
- category_id
Comment:
- id
- created_at
- article_id

使用教义,什么是最佳/标准方法:

  1. 获取 10 篇文章并急切加载每篇文章的最新评论
  2. 获取 10类别并急切加载每个类别中的最新评论

通过 Laravel 中的比较,我可以在类别实体上设置一个关系,以便在文章中有一个评论,并按创建日期对其进行排序。但是,我不知道如何通过教义或DQL实现这一目标。

恐怕没有"标准方法"可以承受急切的负载。我的意思是无法使用一些配置/注释来设置它。

我会通过以下方式做到这一点:

  • 创建注释存储库类
  • 在其中创建getMostRecentCommentsForCategories(array $categories)getMostRecentCommentsForArticles(array $articles)方法
  • 他们可以返回按类别/文章 ID 分组的评论数组

对于排序,您可以使用@OrderBy注释,例如

/**
* @var RiskMitigation[]|ArrayCollection
* @ORMOneToMany(targetEntity="AppEntityRiskMitigation", mappedBy="risk")
* @ORMOrderBy({"effectiveDate" : "ASC"})
*/
private $mitigations;

但是,使用注释无法快速加载 10 个最新文件。

相关内容

  • 没有找到相关文章

最新更新