gpt4 book ai didi

doctrine - 使用 fetch-joined 集合限制 Doctrine 查询?

转载 作者:行者123 更新时间:2023-12-02 10:43:22 26 4
gpt4 key购买 nike

我有一个 Doctrine 查询,它返回博客文章及其评论:

SELECT b, c FROM BlogPost b LEFT JOIN b.comments c

我想将结果限制为 10 篇博客文章。根据 DQL 文档,setMaxResults() 在提取连接集合的查询上无法正常工作(本例中的注释):

If your query contains a fetch-joined collection specifying the result limit methods are not working as you would expect. Set Max Results restricts the number of database result rows, however in the case of fetch-joined collections one root entity might appear in many rows, effectively hydrating less than the specified number of results.

如何正确限制包含 fetch-joined 集合的 Doctrine 查询(在本例中,将结果限制为 10 篇博客文章)?

最佳答案

Paginate 已与 2.2 版合并,并且与新的 symfony2 版本 2.0.10 兼容。

现在就这样使用

//use Doctrine paginator
use Doctrine\ORM\Tools\Pagination\Paginator;

编写您的查询,然后像这样调用结果。

$query->setMaxResults($limit);
$query->setFirstResult($offset);
$results = new Paginator($query, $fetchJoin = true);

希望这对您有帮助。

注意:如果您使用 SF2 2.0.10,则应更新 deps 和 deps.lock 文件并为 Doctrine bundle 指定 2.2 版本。

关于doctrine - 使用 fetch-joined 集合限制 Doctrine 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com