定義自定義的SQL查詢的實體內尋找好的做法,這裏=)是否有可能在Symfony3
基本上,我有一個實體,這是與elems的一個多對一的關係。
可以說我只想從我的實體中選擇一些元素。
我可以做
class Entity {
/* some vars here */
public function getSpecificElems(){
forEach($this->elems as $elem){
/* do stuff here */
if($someCondition){ $result[]=$elem;}
}
return $result;
}
但是,這可能意味着大量數據時有鏈接到我的實體許多elems的獲取。另一種方式是
$em->getRepository("AppBundle:Repository")->getSpecificElems($entity);
其中getSpecificElems
執行DQL查詢。
我在這裏遇到問題:第一個解決方案對我來說更直觀,因爲它是OOP。第二個更快執行,但對我來說似乎不好。
有沒有一種方法來混合1)和2)以獲得$entity->getSpecificElems()
返回我想執行良好SQL查詢的列表?
乾杯,
2)是最好的解決方案 – DOZ
把這個放入存儲庫絕對是過濾或分頁相關實體的方法,並且btw總是也是如此 –
@johnSmith:爲什麼在使用EntityRepository時這個OOP獲取實體屬性而不是實體本身? –