与this问题类似,我对doctrine如何缓存/保持查询结果的关系有一些问题.
现在我知道我可以通过调用refresh / refreshRelated来解决这个问题,但有没有办法暂时禁用表的水合缓存?
特别是在select中使用连接时,示例代码变为:
$result2 = Doctrine_Query::create()
->leftJoin('s.School sc')
->from('Student s')
->execute();
你真的希望Doctrine使用你加入的数据,而不是使用之前选择的缓存水合结果.
有办法做到这一点吗?
提前致谢!
解决方法:
我认为默认情况下它应该与查询结果保持一致,除非您更改了Doctrine_Core :: ATTR_HYdratE_OVERWRITE.您可以使用以下方法检查值:
$doctrineManager = Doctrine_Manager::getInstance();
$val = $doctrineManager->getAttribute(Doctrine::ATTR_HYdratE_OVERWRITE);
当您调用refresh()时,它会强制此值为true,并再次执行查询,然后恢复该设置.如果您的确是假的,可以使用$doctrineManager-> setAttribute进行更改
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。