
단방향
@ManyToOne
@JoinColumn(name = "ORDER_ID")
private Order order;
양방향
@OneToMany(mappedBy = "order")
private List<OrderItem> orderItems = new ArrayList<OrderItem>();
public void addOrderItem(OrderItem orderItem) {
orderItem.setOrder(this);
this.orderItems.add(orderItem);
}
Member
@Entity
@Getter @Setter
public class Member {
@Id @GeneratedValue
@Column(name = "MEMBER_ID")
private Long id;
private String name;
private String city;
private String street;
private String zipcode;
@OneToMany(mappedBy = "member")
private List<Order> orders = new ArrayList<Order>();
public void addOrder(Order order) {
order.setMember(this);
this.orders.add(order);
}
}
Order
@Entity
@Table(name = "ORDERS")
@Getter @Setter
public class Order {
@Id @GeneratedValue
@Column(name = "ORDER_ID" )
private Long id;
private LocalDateTime orderDate;
private String status;
@ManyToOne
@JoinColumn(name = "MEMBER_ID")
private Member member;
@OneToMany(mappedBy = "order")
private List<OrderItem> orderItems = new ArrayList<OrderItem>();
public void addOrderItem(OrderItem orderItem) {
orderItem.setOrder(this);
this.orderItems.add(orderItem);
}
}
OrderItem
@Entity
@Getter @Setter
public class OrderItem {
@Id @GeneratedValue
@Column(name = "ORDER_ITEM_ID")
private Long id;
private int orderPrice;
private int count;
@ManyToOne
@JoinColumn(name = "ORDER_ID")
private Order order;
@ManyToOne
@JoinColumn(name = "ITEM_ID")
private Item item;
}
Item
@Entity
@Getter @Setter
public class Item {
@Id @GeneratedValue
@Column(name = "ITEM_ID")
private Long id;
private String name;
private int price;
private int stockQuantity;
@OneToMany(mappedBy = "item")
private List<OrderItem> orderItems = new ArrayList<OrderItem>();
public void addOrderItem(OrderItem orderItem) {
orderItem.setItem(this);
this.orderItems.add(orderItem);
}
}
결과
