Как не загружать одну и ту же ссылку дважды в доктрине - PullRequest
3 голосов
/ 14 февраля 2012

Допустим, у нас есть две таблицы: «Пост» и «Категория» и два поста с одинаковым значением category_id, скажем, 1.

$post1->getCategory()->getName() загрузит категорию с идентификатором category_id 1

$post2->getCategory()->getName() выполнит один и тот же запрос для загрузки одной и той же категории.

Есть ли какое-либо решение, не выполняющее один и тот же запрос дважды?

1 Ответ

1 голос
/ 16 февраля 2012

Возможно, я ошибаюсь, но я верю, что Doctrine будет использовать внутренний кеш для оптимизации запросов такого типа.AFAIK будет сохранять пул объектов, используемых вашим приложением, поэтому при первой загрузке категории (post1) он будет хранить внутреннюю ссылку на этот объект в своем кэше, поэтому при втором вызове той же категории будет возвращена предыдущаяэкземпляр используется вместо создания нового запроса к базе данных.

...