2012-02-14 2 views
3

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

$post1->getCategory()->getName() загрузит категорию, которая CATEGORY_ID 1

$post2->getCategory()->getName() сделает тот же запрос, чтобы загрузить эту же категорию.

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

ответ

1

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