parent = $group1; $group1->children->add($group2); $em->persist($group1); $em->flush(); $em->clear(); $group3 = $em->find('Entities\Group', $group2->id); // Load child group first (id 2) $group4 = $em->find('Entities\Group', $group1->id); // Load parent group (id 1) // $group3 (id 2) should be a child of (id 1) foreach ($group4->children as $child) { }