Я пытаюсь сохранить несколько адресных объектов в одной клиентской сущности.
Эта часть проста, так как это просто двунаправленное отношение 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;
}
Таким образом, каждый объект «Клиент» должен иметь возможность связать с ним несколько объектов «Адрес», но объект «Клиент» также должен иметь только один из них в качестве основного адреса.
Как это возможно? Есть ли элегантные решения?