Association-Vererbung funktioniert nicht

Hallo zusammen,

ich versuche seit Tagen erfolglos die Vererbung einer Association hinzubekommen. Normale Inheritance-Felder funktionieren einwandfrei und übernehmen den Wert vom parent. Nur die Association bleibt in der DB immer null.

Ich habe mir die Docs (Field Inheritance | Shopware Documentation) mehrfach durchgesehen, kann aber nicht erkennen, was ich falsch mache bzw. wo das Problem liegt:

Produkt-Extension-Definition
(Vererbung von „product_distributor_id“ funktioniert, von „distributor“ nicht):

class ProductExtensionDefinition extends EntityDefinition
{
    public const ENTITY_NAME = 'product_extension';
    
    ...

    public function isInheritanceAware(): bool
    {
        return true;
    }

    protected function defineFields(): FieldCollection
    {
        return new FieldCollection([
            (new IdField('id', 'id'))->addFlags(new Required(), new PrimaryKey()),
            (new FkField('product_id', 'productId', ProductDefinition::class))->addFlags(new Required()),
            (new ReferenceVersionField(ProductDefinition::class, 'product_version_id'))->addFlags(new Required()),

            (new ParentFkField(self::class))->addFlags(new ApiAware()),
            (new ParentAssociationField(self::class, 'id'))->addFlags(new ApiAware()),
            (new ChildrenAssociationField(self::class))->addFlags(new ApiAware()),
            (new FkField('product_distributor_id', 'distributorId', ProductDistributorDefinition::class))->addFlags(new ApiAware(), new Inherited()),

            new OneToOneAssociationField('product', 'product_id', 'id', ProductDefinition::class, false),
            (new ManyToOneAssociationField('distributor', 'product_distributor_id', ProductDistributorDefinition::class, 'id'))->addFlags(new ApiAware(), new Inherited()),
        ]);
    }
}

Distributor-Definition:

class ProductDistributorDefinition extends EntityDefinition
{

    public const ENTITY_NAME = 'product_distributor';
    
    ...

    protected function defineFields(): FieldCollection
    {
        return new FieldCollection([
            (new IdField('id', 'id'))->addFlags(new Required(), new PrimaryKey()),
            (new StringField('name', 'name'))->addFlags(new Required()),
            (new OneToManyAssociationField('productExtensions', ProductExtensionDefinition::class, 'product_distributor_id', 'id'))->addFlags(new RestrictDelete(), new ReverseInherited('distributor')),
        ]);
    }
}

Die dazugehörige Migration:

  $sql = <<<SQL
        CREATE TABLE IF NOT EXISTS product_extension (
                id BINARY(16) NOT NULL,
                product_id BINARY(16) NOT NULL,
                product_version_id BINARY(16) NOT NULL,
                parent_id BINARY(16) NULL,
                product_distributor_id BINARY(16) NULL,
                created_at DATETIME NOT NULL,
                updated_at DATETIME NULL,
                PRIMARY KEY (id),
                CONSTRAINT FK_product_extension_product FOREIGN KEY (product_id, product_version_id)
                    REFERENCES product (id, version_id) ON DELETE CASCADE ON UPDATE CASCADE,
                CONSTRAINT FK_product_extension_distributor_id FOREIGN KEY (product_distributor_id)
                    REFERENCES product_distributor (id) ON DELETE RESTRICT ON UPDATE CASCADE,
                CONSTRAINT FK_product_extension_parent_id FOREIGN KEY (parent_id)
                    REFERENCES product_extension (id) ON DELETE SET NULL
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

  CREATE TABLE IF NOT EXISTS product_distributor (
                id BINARY(16) NOT NULL,
                name VARCHAR(255) NOT NULL,
                created_at DATETIME NOT NULL,
                updated_at DATETIME NULL,
                PRIMARY KEY (id)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

SQL;

 $connection->executeStatement($sql);

 $this->updateInheritance($connection, 'product_extension', 'distributor');

UpdateInheritance legt zwar eine neue Spalte „distributor“ in der Tabelle „product_extension“ an, allerdings bleiben die Werte in dieser Spalte immer null, egal, ob ich per Sync-API eine neue DistributorId setze, eine parentId übertrage etc.

Weiß jemand vielleicht, wo mein (Gedanken)-Fehler liegt?

Vielen Dank und viele Grüße
Frank