Doutrina unidirecional individual

No Symfony 3 com Doctrine, estou tentando obter um relacionamento unidirecional individual com as duas tabelas que compartilham a mesma chave primária em funcionamento. Para fazer isso, estou tentando replicar o exemplo noMapeamento da Associação de Doutrinas página.

No entanto, a documentação individual individual não tem exemplos de setters e getters - e também não há definição do campo id na entidade de destino. Então eu tentei experimentar em torno de mim.

Estas são minhas entidades:

class Country
{

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", precision=0, scale=0, nullable=false, unique=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @ORM\OneToOne(targetEntity="MySubEntity", cascade={"persist", "remove"})
     * @ORM\JoinColumn(name="id", referencedColumnName="id", nullable=true)
     */
    private $mysubentity;
    [...]
    /**
     * @return MySubEntity
     */
    public function getMySubEntity()
    {
        return $this->mysubentity;
    }

    /**
     * @param MySubEntity $mysubentity
     */
    public function setMySubEntity($mysubentity)
    {
        $this->mysubentity = $mysubentity;
    }
}

class MySubEntity
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", precision=0, scale=0, nullable=false, unique=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    [..]

    /**
     * Set id
     *
     * @param $id
     *
     * @return MySubEntity
     */
    public function setId($id)
    {
        $this->id = $id;

        return $this;
    }

    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }
}

Quando persisto na entidade do país, receboIntegrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails. Ao inspecionar os dados, vejo que o Doctrine tentou definir o id do MySubEntity como 0.

Alguém tem uma idéia do que eu preciso fazer para que o campo MySubEntity $ id seja preenchido automaticamente a partir da entidade Country?

questionAnswers(1)

yourAnswerToTheQuestion