How to fetch class instead of array in Doctrine 2

doctrine, doctrine-orm, doctrine-query, php

Solution

Yes you can, usually using:

$repository
    ->createQueryBuilder('p')
    ->getQuery()
    ->execute()
;

This should return you an array of entities.

If you want to get a single entity result, use either `getSingleResult` or `getOneOrNullResult`:

$repository
    ->createQueryBuilder('p')
    ->getQuery()
    ->getOneOrNullResult()
;

Warning: These method can potentially throw `NonUniqueResultException`.

Edit: Ok, so the question was about partial objects: http://docs.doctrine-project.org/en/latest/reference/partial-objects.html

Problem

I am able to fetch my data from database by using this structure: ``` $user = $this->getDoctrine() ->getRepository('AcmeDemoBundle:Emails') ->find(8081); ``` When I do that, I am able to get my data like this: ``` $user->getColumnNameHere(); ``` Basically, I am able to use Entity Class. But if I want to use QueryBuilder instead of `find` I am only getting associative arrays. ``` $product->createQueryBuilder('p') ->setMaxResults(1) ->where('p.idx = :idx') ->select('p.columnNameHere') ->setParameter('idx', 8081) ->orderBy('p.idx', 'DESC') ->getQuery(); $product = $query->getResult(); ``` $product returns as array. Is it possible to fetch it with Entity Manager Class? If yes, how? I digg the documentation but it seems not possible or not exist in the doc or I'm just blind :)

Original source