@Entity
@Table(name = "T_ORDER")
public class Order {
@Id
@GeneratedValue
private Long id;
@ElementCollection
@CollectionTable(name = "T_LINE_ITEM")
private Set<LineItem> lineItems = new HashSet<LineItem>();
public Long getId() {
return id;
}
public Set<LineItem> getLineItems() {
return lineItems;
}
public int getTotalPrice() {
int total = 0;
for (LineItem lineItem : lineItems) {
total += lineItem.getPrice();
}
return total;
}
}
@Embeddable
public class LineItem {
@ManyToOne(fetch = FetchType.LAZY)
private Product product;
private int price;
@SuppressWarnings("unused")
private LineItem() {
}
Read more: ERWIN VERVAET