gpt4 book ai didi

caching - 在 Symfony 中防止 Doctrine 的查询缓存

转载 作者:行者123 更新时间:2023-12-04 07:59:16 25 4
gpt4 key购买 nike

在我的 Symfony/Doctrine 应用程序中,我有一个按 RANDOM() 排序的查询。我多次调用相同的方法,但看起来查询的结果正在被缓存。

这是我的相关代码:

$query = $table->createQuery('p')
->select('p.*, RANDOM() as rnd')
->orderBy('rnd')
->limit(1)
->useQueryCache(null)
->useResultCache(null);
$result = $query->fetchOne();

不幸的是,无论我是否通过 null,每次都返回相同的记录两个 useQueryCacheuseResultCache .我尝试使用 false而不是 null ,但这也不起作用。最后,我还尝试调用两个 setResultCacheLifeSpan(0)setResultCacheLifeSpan(-1) ,但两个电话都没有改变。

关于如何防止缓存的任何见解,因为我希望每次调用此方法时都选择不同的随机行?

编辑:我也试过调用 clearResultCache() ,但这最终导致错误说明:“结果缓存驱动程序未初始化”。

编辑 2:根据要求,这是通过调用 $query->getSqlQuery() 生成的 SQL :
SELECT c.id AS c__id, c.name AS c__name, c.image_url AS c__image_url,
c.level AS c__level, c.created_at AS c__created_at, c.updated_at
AS c__updated_at, RANDOM() AS c__0 FROM cards c ORDER BY c__0 LIMIT 1

最佳答案

原来我是个白痴。我试图简化我对这个问题的查询,这样做,我没有捕获真正的原因。我有一个 where()andWhere()调用,并且条件组合导致仅匹配一个可能的记录。感谢大家抽出宝贵的时间回复,抱歉浪费了大家的时间!

关于caching - 在 Symfony 中防止 Doctrine 的查询缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4917289/

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