Как сопоставить ассоциацию как идентификатор, если целевой объект также сопоставляет ассоциацию как идентификатор? - PullRequest
0 голосов
/ 07 февраля 2020

Я получил эту ошибку в Class App \ Model \ Entity \ Item \ Item C:

Невозможно сопоставить ассоциацию 'App \ Model \ Entity \ Item \ ItemC # с идентификатором, поскольку целевая сущность «App \ Model \ Entity \ Item \ ItemB» также сопоставляет ассоциацию как идентификатор.

Пример сущностей:

стратегии = "ИДЕНТИЧНОСТЬ" - автоинкремент в PostgreSQL (SERIAL)

class ItemA
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;
}

class ItemB
{
    /**
     * @var ItemA
     *
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="NONE")
     * @ORM\OneToOne(targetEntity="App\Model\Entity\Item\ItemA", cascade={"persist", "remove"})
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_item", referencedColumnName="id", onDelete="CASCADE")
     * })
     */
    private $itemA;
}

class ItemC
{
    /**
     * @var ItemB
     *
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="NONE")
     * @ORM\OneToOne(targetEntity="App\Model\Entity\Item\ItemB", cascade={"persist", "remove"})
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_something", referencedColumnName="id_item", onDelete="CASCADE")
     * })
     */
    private $something;
}

Есть ли способ исправить ошибку или doctrine не поддерживает это, и я должен использовать uuid вместо идентификатора автоинкремента?

Спасибо.

...