Sto utilizzando Doctrine 2.2.2 cercando di eseguire una query per un'entità utente insieme alla società dell'utente. Voglio che questa query venga memorizzata nella cache poiché i dati all'interno non cambieranno spesso, se non del tutto. Qui di seguito è quello che ho provato:La cache dei risultati di Doctrine non memorizza nella cache una query con un join
$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();
Apparentemente, l'entità utente viene memorizzato nella cache, ma lo fa ancora una query per l'azienda. C'è un modo che posso recuperare entrambi nello stesso momento e metterli nella cache dei risultati?
Ho trovato this, ma è molto vecchio e la sua soluzione non ha funzionato per me.
Mi è stato suggerito di eseguire this, ma questo tipo di sconfigge lo scopo della cache dei risultati.
non so dottrina, ma si può dare mysql cache interna una prova: SELEZIONE SQL_CACHE u, c dalle entità \ User u LEFT JOIN u.company c DOVE u.id =: id – nfo
Questo non è utile. Voglio essere in grado di usare tutte le cose dell'entità di Doctrine. – tubaguy50035
Provare a forzare il recupero di EAGER (anziché il pigro). Devi aggiungere fetch = "EAGER" alla tua definizione di relazione. – Cyprian