admin管理员组

文章数量:1396763

I have following scenario: there is Order and it can have multiple OrderLineItems, but only ones that has paret_id = null. And OrderLineItems can have sub line items referencing itself on paret_id = ID.

How should I map this parent_id = null on Order?

This is current mapping:

// Order

    #[
        ORM\OneToMany(
            targetEntity: OrderLineItem::class,
            mappedBy: 'order',
            cascade: ['all'],
            fetch: 'EXTRA_LAZY',
            orphanRemoval: true,
        ),
        ORM\JoinColumn(name: 'id', referencedColumnName: 'order_id'),
    ]
    public Collection $orderLineItems;
// OrderLineItem

    #[
        Api\ReferenceField,
        ORM\ManyToOne(targetEntity: Order::class, inversedBy: 'orderLineItems'),
        ORM\JoinColumn(name: 'order_id', referencedColumnName: 'id'),
    ]
    public Order $order;

    #[
        ORM\ManyToOne(targetEntity: OrderLineItem::class, inversedBy: 'subOrderLineItems'),
        ORM\JoinColumn(name: 'parent_id', referencedColumnName: 'id'),
    ]
    public OrderLineItem $parentOrderLineItem;

    #[
        ORM\OneToMany(
            targetEntity: OrderLineItem::class,
            mappedBy: 'parentOrderLineItem',
            cascade: ['all'],
            fetch: 'EXTRA_LAZY',
            orphanRemoval: true,
        ),
        ORM\JoinColumn(name: 'id', referencedColumnName: 'parent_id'),
    ]
    public Collection $subOrderLineItems;

本文标签: symfonyDoctrine mapping of selfreferencing relationStack Overflow