He modificado la relacion, la habia definido mal y tambien he implementado mejor los metodos. Me ha quedado asi:
Código PHP:
...
/**
* @ManyToOne(targetEntity="Categoria", inversedBy="categoriashijo")
* @JoinColumn(name="fkidcategoria", referencedColumnName="id")
*/
protected $categoriapadre;
/** @OneToMany(targetEntity="Categoria", mappedBy="categoriapadre") **/
protected $categoriashijo;
...
public function setCategoriaPadre( Categoria $categoria ){
if ( !($categoria->getCategoriasHijo()->contains( $this )) )
{
$this->categoriapadre = $categoria;
$categoria->addCategoriaHijo($this);
}
}
public function getCategoriaPadre(){
return $this->categoriapadre;
}
public function addCategoriaHijo( Categoria $categoria ){
if ( !($this->getCategoriasHijo()->contains( $categoria )) )
{
$this->getCategoriasHijo()->add( $categoria );
$categoria->setCategoriaPadre( $this );
}
}
public function getCategoriasHijo(){
return $this->categoriashijo;
}
...