In doctrine 2 there are by default no foreign key fields a ID. For example your “product” entity might have a “shop” property, but no “shopId” property.

To get all the products that belong to a shop you would always have to make a join like this:

/* @var $em \Doctrine\ORM\EntityManager */ $result = $em->createQuery("SELECT p FROM My\Entity\Product p     JOIN p.shop s WHERE s.id = :shopId" )->setParameter('shopId', 1)  ->getOneOrNullResult();

But in certain situations it would be nice to use the foreign key column directly, in this case “shopId”. That More >