Как организовать првильное кеширование сущностей в Doctrine 2?
Всем привет.
Когда я получаю сущность из кеша, я делаю $entityManager->merge($entity)
Но при этом doctrine совершает запрос к базе данных для получения "managed" сущности и слияния ее с "закешированной".
Мне не нужно изменять эту сущность, я хочу просто получать ее ассоциации используя $entity->getChildren()
Если я не делаю merge, то getChildren ничего не возвращает. А если делаю, то имею лишний запрос к БД, от которого и собирался избавиться.
Есть ли возможность сделать что-то типа attach для перевода сущности в состояние managed, но без запроса к БД?
P.S. Ипользовать fetch="EAGER" для ассоциаций не вариант, так как их нет смысла хранить в кеше, они нужны всегда в актуальном состоянии.
К сожалению запросы будут производится всегда, так устроена doctrine, ей необходимо сделать дозапрос сущности, чтобы знать о ее отношениях с другими сущностям. Как она может вернуть вам children-ов, если не знает, есть они у этой сущности или нет?