У меня есть классовое наследование, подобное этому
/**
* @ORM\Entity
* @ORM\Table(name="persons")
* @@ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="person_types", type="string")
* @ORM\DiscriminatorMap({
* "insuree" = "Insuree",
* "third_party" = "ThirdParty"
* })
*/
abstract class Person {
/**
* @ORM\Entity
* @ORM\Table(name="insurees")
*/
abstract class Insuree extends Person
/**
* @ORM\Entity
* @ORM\Table(name="third_parties")
*/
final class ThirdParty extends Insuree {
Когда я выполнил схему: create, вместо доктрины, создал столбец дискриминатора в классе Person, он создал таблицу лиц с принадлежащими ему полями и ничего более, затем создал таблицу страхователей со столбцами таблицы персон и принадлежащих ему столбцов, а затем создал таблицу third_parties со столбцами из таблиц лиц и страховых компаний и принадлежащих ему столбцов. Когда я выполнил EntityManager :: flush (), все столбцы из таблицы third_parties были заполнены, а обе другие таблицы были пусты. Чего мне не хватает? Я следовал документам с официального сайта доктрины и, кажется, все сделал правильно.