Возможно ли использование одного и того же объекта в OneToMany и OneToOne? - PullRequest
1 голос
/ 17 декабря 2011

Я пытаюсь сохранить несколько адресных объектов в одной клиентской сущности.

Эта часть проста, так как это просто двунаправленное отношение ManyToOne / OneToMany.

Взгляните на наш простой код, но обратите внимание на вопрос, который я задаю, с дополнительной ассоциацией OneToOne, которую я пытаюсь создать для Customer для primary_address

class Address
{
    /**
     * @ORM\Column 
     */
    protected $address_text;

    /**
     * @ORM\ManyToOne(targetEntity="Customer", inversedBy="addresses") 
     */
    protected $customer;
}



class Customer 
{
    /**
    * @ORM\OneToMany(targetEntity="Address", mappedBy="customer")
    */
    protected $addresses;

    /**
    * @ORM\OneToOne(targetEntity="Address")
    */
    protected $primary_address;
}

Таким образом, каждый объект «Клиент» должен иметь возможность связать с ним несколько объектов «Адрес», но объект «Клиент» также должен иметь только один из них в качестве основного адреса.

Как это возможно? Есть ли элегантные решения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...