책에 나와있는(p196) ERD, UML을 기반으로 엔티티를 만들어보았다.
package ch05;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
@Entity
public class Member {
@Id
@GeneratedValue
@Column(name = "MEMBER_ID")
private int id;
private String name;
private String city;
private String street;
private String zipCode;
@OneToMany(mappedBy = "member")
private List<Order> orders = new ArrayList<>();
}
package ch05;
import javax.persistence.*;
import java.time.LocalDate;
import java.util.LinkedList;
import java.util.List;
@Entity
public class Order {
@Id
@GeneratedValue
@Column(name = "ORDER_ID")
private Long id;
@ManyToOne
@JoinColumn(name = "MEMBER_ID")
private Member member;
@OneToMany(mappedBy = "order")
private List<OrderItem> orderItemList = new LinkedList<>();
private LocalDate orderDate;
@Enumerated(EnumType.STRING)
private OrderStatus status;
enum OrderStatus{
DONE, DELIVERY, READY
}
}
package ch05;
import javax.persistence.*;
@Entity
public class OrderItem {
@Id
@GeneratedValue
@Column(name = "ORDER_ITEM_ID")
private Long id;
@ManyToOne
@JoinColumn(name = "ORDER_ID")
private Order order;
@ManyToOne
@JoinColumn(name = "ITEM_ID")
private OrderItem orderItem;
private Long orderPrice;
private Long count;
}
package ch05;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Item {
@Id
@GeneratedValue
@Column(name = "ITEM_ID")
private Long id;
private String name;
private Long price;
private String stockQuantity;
}