Создание записи с состовным первичным ключом
Как в symfony создавать записи через entityManager с составным первичным ключом?
Есть таблица с полями:
/**
* @ORM\Id
* @ORM\Column(type="integer", options={"comment": "Идентификатор"})
*/
private $one_id;
/**
* @ORM\Id
* @ORM\Column(type="integer", options={"comment": "Идентификатор"})
*/
private $two_id;
Таблица one:
Через нее хочу создавать, например:
$one = new One();
$arrayCollection = ArrayCollection();
foreach ($ids as $id) {
$object = new Object();
$object ->setNone($id);
$object ->setOne($one);
$object ->setBoolean(false);
$arrayCollection ->add($object);
}
$one->setEntities($arrayCollection);
$em->persist($one);
Ответы (1 шт):
Вот подробный пример по композитным ключам https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/composite-primary-keys.html#primitive-types-only
Однако ниже предостережение
Using composite keys always comes with a performance hit compared to using entities with a simple surrogate key. This performance impact is mostly due to additional PHP code that is necessary to handle this kind of keys, most notably when using derived identifiers.
On the SQL side there is not much overhead as no additional or unexpected queries have to be executed to manage entities with derived foreign keys.
Сами майнтейнеры доктрины считают, что такие ключи серьезно влияют на производительность