Это конфигурация, которую я хочу иметь:
Сущность «Учетная запись» с НАСЛЕДОВАНИЕМ ОБЪЕДИНЕННОГО наследования двух других сущностей: «Автор» и «AccountBackend».
Затем я хотел бы, чтобы «AccountBackend» имел наследование SINGLE_TABLE с двумя другими сущностями: «Администратор» и «FeaturedAuthor». Вот как я их определил:
Аккаунт.php
/**
* @Entity (repositoryClass="Repositories\Account")
* @Table(name="accounts")
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="integer")
* @DiscriminatorMap({"1"="Author","2"="AccountBackend"})
* @HasLifecycleCallbacks
*/
class Account
{
Куратор.php
/**
* @Entity
* @Table(name="accounts_author")
*/
class Author extends Account
{
AccountBackend.php
/**
* @Entity (repositoryClass="Repositories\AccountBackend")
* @Table(name="accounts_backend")
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorColumn(name="discr", type="integer")
* @DiscriminatorMap({"1"="FeaturedAuthor","2"="Administrator"})
* @HasLifecycleCallbacks
*/
class AccountBackend extends Account
{
FeaturedAuthor.php
/**
* @Entity
*/
class FeaturedAuthor extends AccountBackend
{
Администратор.php
/**
* @Entity
*/
class Administrator extends AccountBackend
{
Когда я их определил, когда я пытаюсь выполнить обновление через CLI, он говорит
«Сущность «Entities\AccountBackend» должна быть частью карты дискриминатора «Entities\Account», чтобы правильно сопоставляться в иерархии наследования. В качестве альтернативы вы можете сделать «Entities\AccountBackend» абстрактным классом, чтобы избежать возникновения этого исключения».
Я не вижу ничего плохого в том, как я их определил, это первый раз, когда я пытаюсь наследовать уже унаследованную сущность. Есть идеи, что не так? Спасибо!