¿Asociación Doctrina 2 Mapeo Overhead?

Mapeo de asociaciones en Doctrine 2

<?php
class User
{
    //...
    /**
     * @ManyToMany(targetEntity="Group")
     * @JoinTable(name="User_Group",
     *      joinColumns={@JoinColumn(name="User_id", referencedColumnName="id")},
     *      inverseJoinColumns={@JoinColumn(name="Group_id", referencedColumnName="id")}
     *      )
     */
    private $groups;
    //...
}

En la prueba, asumiendo en este ejemplo $ grupos inicializados como ArrayCollection () en el constructor, devuelve todos los grupos asociados con el usuario.

Un programador en mi equipo de desarrollo mencionó un buen punto sobre este escenario. Carga todos los grupos asociados con una entidad de usuario, es posible que no los necesitemos todos.

Al hacer declaraciones de combinación de DQL, digamos que queremos seleccionar los grupos favoritos, que se pueden lograr con las combinaciones de DQL, unimos usuario, grupo y favoritos. ¿Doctrine vuelve a consultar a todos los grupos? Esto es lo que estoy tratando de señalar, ya existe una colección de todos los grupos.

¿Cómo controlamos el resultado del mapeo de asociación? O si eliminamos las asignaciones de asociación, ¿podemos seguir utilizando DQL para unirnos a entidades que no tienen una configuración de asignaciones de asociación? O, ¿Doctrine utiliza realmente los datos de la asignación de asociación en DQL?

Respuestas a la pregunta(0)

Su respuesta a la pregunta