반응형
SMALL
1) 회원(Member) 엔티티
@Entity
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>();
//Getter, Setter
}
2) 주문(Order) 엔티티
@Entity
@Table(name = "ORDERS")
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> orderItems = new ArrayList<OrderItem>();
@Temporal(TemporalType.TIMESTAMP)
private Date orderDate; //주문시간
@Enumerated(EnumType.STRING)
private OrderStatus status;//주문상태
//==연관관계 메서드==//
public void setMember(Member member) {
//기존 관계 제거
if (this.member != null) {
this.member.getOrders().remove(this);
}
this.member = member;
member.getOrders().add(this);
}
public void addOrderItem(OrderItem orderItem) {
orderItems.add(orderItem);
orderItem.setOrder(this);
}
//Getter, Setter
}
@Entity
@Table(name = "ORDER_ITEM")
public class OrderItem {
@Id @GeneratedValue
@Column(name = "ORDER_ITEM_ID")
private Long id;
@ManyToOne
@JoinColumn(name = "ITEM_ID")
private Item item; //주문 상품
@ManyToOne
@JoinColumn(name = "ORDER_ID")
private Order order; //주문
private int orderPrice; //주문 가격
private int count; //주문 수량
//Getter, Setter
}
@Entity
public class Item {
@Id
@GeneratedValue
@Column(name = "ITEM_ID")
private Long id;
private String name; //이름
private int price; //가격
private int stockQuantity; //재고수량
//Getter, Setter
}
반응형
LIST
'개인 공부 > JPA' 카테고리의 다른 글
Fetch Join시 생기는 문제 (1) | 2024.04.28 |
---|---|
JPA N+1 문제 (0) | 2024.04.12 |
05 연관관계 매핑 기초 (0) | 2023.10.04 |
04 엔티티 매핑 (0) | 2023.09.20 |
03 영속성 관리 (0) | 2023.09.19 |