我正在使用Doctrine 2.2.2尝试查询用户实体以及用户所在的公司。由于这些数据很少会更改,因此希望对此查询进行缓存。以下是我的尝试:
$user = $em->createQuery('
SELECT u, c
FROM Entities\User u
LEFT JOIN u.company c
WHERE u.id = :id
')->setParameter('id', $identity)->useResultCache(true, 21600, 'user_' . $identity)->getResult();
表面上,用户实体已被缓存,但仍然会查询公司。有没有办法同时获取它们并将它们放入结果缓存中?我找到了这个链接,但它很老了,他的解决方案对我不起作用。有人建议我这样做,但那样做有点违背结果缓存的目的。