.. index::
    double: Reference; Proxy Query

Doctrine ORM Proxy Query
========================


The ``ProxyQuery`` object is used to add missing features from the original `Doctrine Query` builder:

* ``execute`` method - no need to call the ``getQuery()`` method,
* add sort by and sort order options,
* add preselect id query on left join query, so a limit query will be only applied on the left statement and not on the full select statement. This simulates the original Doctrine 1 behavior.


.. code-block:: php

    <?php

    use Sonata\AdminBundle\Datagrid\ORM\ProxyQuery;

    $queryBuilder = $this->em->createQueryBuilder();
    $queryBuilder->from('Post', 'p');

    $proxyQuery = new ProxyQuery($queryBuilder);
    $proxyQuery->leftJoin('p.tags', 't');
    $proxyQuery->setSortBy('name');
    $proxyQuery->setMaxResults(10);

    $results = $proxyQuery->execute();
