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>