volviendo con el mismo ejemplo, se me fue algo complicado comprender el concepto pero creo que lo tengo: quisiera saber si este ejemplo esta bien: considerando que es self-referencing el lado propietario es parent y el inverso departamentos.
    
Código PHP:
Ver original- <?php 
-   
- namespace Entities; 
-   
- use Doctrine\ORM\Mapping as ORM; 
-   
- /** 
-  * Departamento 
-  * 
-  * @Table(name="departamento") 
-  * @Entity 
-  */ 
- class Departamento 
- { 
-     /** 
-      * @var integer 
-      * @Column(name="id", type="integer", nullable=false) 
-      * @Id 
-      * @GeneratedValue(strategy="IDENTITY") 
-      */ 
-     private $id; 
-   
-     /** 
-      * @var string 
-      * 
-      * @Column(name="descripcion", type="string", length=200, nullable=false) 
-      */ 
-     private $descripcion; 
-   
-     /** 
-      * @OneToMany(targetEntity="Departamento", inversedBy="departamentos") 
-      * @JoinColumn(name="departamento_id", referencedColumnName="id") 
-      **/ 
-     private $parent; 
-     /** 
-      * @var string 
-      * 
-      * @Column(name="nombrecargousuario", type="string", length=200, nullable=false) 
-      */ 
-     private $nombrecargousuario; 
-   
-     /** 
-      * @var integer 
-      * @ManyToOne(targetEntity="Departamento",mappedBy="parent") 
-      * @Column(name="departamento_id", type="integer", nullable=false) 
-      * 
-      * @Column(name="departamento_id", type="integer", nullable=false) 
-      */ 
-     private $departamentos; 
-   
-     /** 
-      * @var string 
-      * 
-      * @Column(name="sigla", type="string", length=50, nullable=false) 
-      */ 
-     private $sigla; 
-   
-     /** 
-      * @var string 
-      * 
-      * @Column(name="formacite", type="string", length=20, nullable=false) 
-      */ 
-     private $formacite; 
-   
-     /** 
-      * @var \DateTime 
-      * 
-      * @Column(name="fecha", type="date", nullable=false) 
-      */ 
-     private $fecha; 
-   
-     /** 
-      * @var string 
-      * 
-      * @Column(name="estado", type="string", length=1, nullable=false) 
-      */ 
-     private $estado; 
-   
-     public function __construct(){ 
-         $this ->departamentos = new \Doctrine\Common\Coollections\ArrayCollection(); 
-     } 
- } 
gracias