// ... pour optimiser le nombre de requêtes exécutées par Doctrine. class User { // ...
/**
* @ORM\OneToOne(targetEntity=Address::class, cascade={"persist", "remove"}, inversedBy="user", fetch="EAGER")
*/
protected $address;
/**
* @ORM\OneToMany(targetEntity=Participation::class, mappedBy="user", fetch="EAGER")
*/
protected $participations;
// ...
}
L’appel aux méthodes contains($entity), containsKey($key), count(), get($key), slice($offset, $length = null), add($entity) et offsetSet($key, $entity) de la collection ne déclenchera pas une requête de chargement de toutes les entités.
Si par exemple, nous avions la relation entre les utilisateurs et les participations en mode EXTRA_LAZY, un appel à la méthode $user->getParticipations()->count() se traduirait par une requête SELECT COUNT(*).