Il ressemble à cache des résultats n'est pas activé pour toutes les requêtes (mais cache de requêtes est activée) et nous avons besoin de l'activer en utilisant la méthode useResultCache
. Cette méthode nous permet également de définir la durée de vie du cache.
Donc ça va ressembler cette
$em->createQuery('SELECT a FROM SomeBundle:Entity a')
->useResultCache(true, 3600, 'cacheId')
->getResult();
et createQueryBuilder
$repository = $this->getEntityManager()->getRepository('SomeBundle:Entity');
$qb = $repository->createQueryBuilder('g');
$qb->andWhere('g.categoryId = :categoryId')->setParameter('categoryId', '1');
$qb->addOrderBy('g.id', 'DESC');
$query = $qb->getQuery();
$query->useResultCache(true, 3600, 'cacheId');
où 3600
sera la durée de vie cache en quelques secondes et cacheId
notre clé de cache.