package org.books.domain; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Table(name = "BOOK_ORDER") public class Order { public enum Status { Submitted, InProgress, Closed, Canceled } @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private double price; @Enumerated(EnumType.STRING) private Order.Status status = Status.Submitted; @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER) private Address address; @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER) private PaymentInfo paymentInfo; @OneToMany(cascade = CascadeType.ALL) private List<LineItem> lineItems = new ArrayList<LineItem>(); public List<LineItem> getLineItems() { return lineItems; } public long getId() { return id; } public void setPrice(double price) { this.price = price; } public double getPrice() { return price; } public Order.Status getStatus() { return status; } public void setStatus(Order.Status status) { this.status = status; } public void setAddress(Address address) { this.address = address; } public Address getAddress() { return address; } public void setPaymentInfo(PaymentInfo paymentInfo) { this.paymentInfo = paymentInfo; } public PaymentInfo getPaymentInfo() { return paymentInfo; } }