У меня есть конкретная ситуация, когда составной первичный ключ одного объекта является частью первичного ключа другого объекта. Это случай специализации, но теперь это не имеет значения.Первичный ключ составной части Doctrine как часть первичного ключа другого объекта
Я использую Doctrine для создания объектов из базы данных, но доктрина не поддерживает составной внешний ключ в качестве первичного ключа:
It is not possible to map entity 'XXXXX' with a composite primary key as part of the primary key of another entity 'YYYYYY#id_xxxxx'
Кто-нибудь знает решение этой ситуации? Это может быть решение или модель редактирования Doctrine и структура базы данных.
UPDATE 1
CREATE TABLE `amandman` (
`iddokumenta` int(11) NOT NULL,
`datumdostavljanjaskupstini` date NOT NULL,
`tekst` text,
`datumizmene` date DEFAULT NULL,
`izmenjenitekst` text,
`iddokumentapredlogazakona` int(11) DEFAULT NULL,
`datumdostavljanjaskupstinipredlogazakona` date DEFAULT NULL,
PRIMARY KEY (`iddokumenta`,`datumdostavljanjaskupstini`),
KEY `iddokumentapredlogazakona_idx` (`iddokumentapredlogazakona`,`datumdostavljanjaskupstinipredlogazakona`),
CONSTRAINT `iddokumenta45` FOREIGN KEY (`iddokumenta`, `datumdostavljanjaskupstini`) REFERENCES `dokument` (`iddokument`, `datumdostavljanjaskupstini`) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT `iddokumentapredlogazakona` FOREIGN KEY (`iddokumentapredlogazakona`, `datumdostavljanjaskupstinipredlogazakona`) REFERENCES `predlogzakona` (`iddokumenta`, `datumdostavljanjaskupstini`) ON DELETE NO ACTION ON UPDATE CASCADE)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
Это одна из сущностей из базы данных, которые не могут быть сгенерированы доктриной.
Что вы подразумеваете под словом «композитный»? Вы просто сгруппировали два ключа вместе или создали первичный ключ, охватывающий два столбца? – Adder
Можете ли вы скопировать свои сущности в вопрос, пожалуйста? –
Прошу прощения за поздний ответ. Под композитом я подразумеваю, что первичный ключ охватывает два столбца. – poletn23