Witam. Mam sobie takie entity:
<?php
class Post {
/**
* @ORM\ManyToMany(targetEntity="Tag")
* @ORM\JoinTable(name="post_tags",
* joinColumns={@ORM\JoinColumn(name="post_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="tag_id", referencedColumnName="id")}
* )
**/
private $tags;
}
Problem polega na tym, że gdy robię foreach po pobranych postach, i pobieram tagi, to tworzy się tyle zapytań ile postów w celu pobrania tagów. Czyli jak mam 100 postów, to do bazy danych leci 100 zapytań o tagi.
Nie wiem czemu, ale jak ustawie fetchMode na fetch="EAGER" , to nic to nie zmienia. Tak jakby nie działało to na ManyToMany.
Jak pobrać dla tych postów tagi? Już pomysłu mi brak. Jest opcja z joinem, ale ona odpada... bo muszę limitować wyniki. Np wyświetlić 50 postów. A jak zrobie joina to nie będę wiedzieć ile jest postów w pobranych rekordach.