Extbase: выберите ленивую или активную загрузку во время выполнения

У меня есть объект предметной области Foo, который имеет отношение 1:n к объекту предметной области Bar.

Есть два основных варианта использования, когда мне нужно, чтобы все foo соответствовали некоторому критерию. В случае A меня волнуют бары, прикрепленные к каждому foo, в случае B — нет. Баров довольно много, поэтому простая постоянная загрузка баров не годится для выполнения случая А.Точно так же, если не загружать бары с энтузиазмом, это приведет к лавине n+1 в случае B. Таким образом, ни пометить реальность как @Lazy, ни не пометить ее — это неправильный выбор.

А теперь мой вопрос: можно ли во время запроса сообщить слою сохранения extbase, следует ли ему быть ленивым или нетерпеливым? Если да, то как? Если нет, есть ли другой способ в Extbase избежать проблемы n+1 (т.е. загрузить все необходимые бары и затем надеяться, что кэширование сработает при переборе foos)?

Мое последнее средство, конечно, было бы загрузить foos с отложенной загрузкой, загрузить бары вручную во втором запросе, а затем вручную установить отношение.

Есть предложения?

6
задан adhominem 5 March 2012 в 15:42
поделиться