不久前,我问了几个关于 Doctrine 查询缓存的问题,因为它没有按我的意愿工作。
关于为什么我的关系没有被缓存的问题:
关于如何使用分离和合并缓存关系的问题:
我不知道为什么我不早点这样做,但我刚刚启用了 Doctrine EchoSQLLogger
,当我重新合并实体时,我发现每个页面都在执行三个查询。
我的实体是user
,company
和privilege
,user
是另外两个的父级。当我第一次获得user
withcompany
并privilege
加入时,我运行detach
在user
然后将其放入ApcCache
. 当我从缓存中获取时,我会做一个merge
让我恢复user
所有 Doctrine 魔法的实体。
问题是,当我调用 时merge
,它会查询user
、 thecompany
和 then privilege
。这merge
是应该如何工作的吗?
有没有办法在user
不调用数据库的情况下缓存我的实体与两个完整的关系?