Axelor Doc

one-to-many

One-to-many fields are defined by the tag <one-to-many> :

<entity name="Order">
    ...
    <one-to-many name="items" ref="OrderLine"/>
</entity>

<entity name="OrderLine">
    ...
</entity>

In this case, the object Order is a 1: n relationship with an object OrderLine . This relationship is unidirectional.

The entity Order contains a list of OrderLine :

public class Order extends AuditableModel {
    ...
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true)
    private List<OrderLine> items;

    public List<OrderLine> getItems() {
        return items;
    }
    public void setItems(List<OrderLine> items) {
        this.items = items;
    }
    ...
}

To create a bidirectional relationship, the master entity must specify a return (many-to-one) field, and the slave entity bringing the one-to-many, must attibut mappedBy defines the many-to- one master.

<entity name="Order">
    ...
    <one-to-many name="items" ref="OrderLine" mappedBy="order"/>
</entity>

<entity name="OrderLine">
    ...
    <many-to-one name="order" ref="Order"/>
</entity>