我在 symfony2.1 安装中使用doctrine/mongodb 1.0.0-BETA1。
因此,我试图强制我的存储库从数据库调用数据,而不是使用它已缓存的对象。
$audit = $dm->getRepository("WGenSimschoolsBundle:Audit")->findOneById("xxxx");
.... do something somewhere to change the object ....
此时如果我打电话
$audit = $dm->getRepository("WGenSimschoolsBundle:Audit")->findOneById("xxxx");
审计数据未发生变化。它仍然保留着最初获取的对象。如果我尝试
$dm->refresh($audit)
我也得到同样的结果。我是否可以返回数据库获取该值?
您是否已将更改刷新到$audit
object?
$audit = $dm->getRepository("WGenSimschoolsBundle:Audit")->findOneById("xxxx");
//do something somewhere to change the object
$dm->flush();
每次你做一个findBy(...)
or findOneBy(...)
它实际上从数据库中获取一个新文档。 (您应该在 Symfony 分析器中看到该查询)
使用 find() 代替,它将从其内部代理缓存中获取文档。
文档将保留在代理缓存中,直到您调用$dm->clear()
method.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)