Te repito lo mismo, en id tienes metadata de mas y departamentoId debería ser departamento si es una unidad o bien departamentos si es una colección, luego en la metadata mapeas la clave foranea con el nombre que quieras pero a nivel de domain model es un objeto no el id del mismo.
Código PHP:
Ver originaluse Doctrine\Common\Collections\ArrayCollection;
/** @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)
*/
private $descripcion;
/**
* @OneToMany(targetEntity="Departamento", mappedBy="parent")
**/
private $children;
/**
* @ManyToOne(targetEntity="Departamento", inversedBy="children")
* @JoinColumn(name="parent_id", referencedColumnName="id")
**/
private $parent;
public function __construct()
{
$this->children = new ArrayCollection;
}
}