Order has a field, lineItems, that has a one-to-many relationship with LineItem’s field order. That is, each order has one or more line item.
LineItem uses a compound primary key that is made up of the orderId and itemId fields. This compound primary key maps to the ORDERID and ITEMID columns in the PERSISTENCE_ORDER_LINEITEM table. ORDERID is a foreign key to the ORDERID column in the PERSISTENCE_ORDER_ORDER table. This means that the ORDERID column is mapped twice: once as a primary key field, orderId; and again as a relationship field, order.
Here’s the relationship mapping in Order:
@OneToMany(cascade=ALL, mappedBy="order") public Collection<LineItem> getLineItems() { return lineItems; }
Here is the relationship mapping in LineItem:
@ManyToOne public Order getOrder() { return order; }