728x90
반응형
package com.example.model.entity;
public enum OrderStatus {
ORDER,CANCEL
}
package com.example.model.entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Getter
@Setter
@ToString
@Entity
public class Item {
@Id
@GeneratedValue
@Column(name="ITEM_ID")
private Long id;
private String name; //이름
private int price; //가격
private int stockQuntity; //재고수량
}
package com.example.model.entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
@Getter
@Setter
@ToString(exclude = {"orders"})
@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>();
}
package com.example.model.entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Getter
@Setter
@ToString(exclude = {"member","orderItems"})
@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);
}
}
package com.example.model.entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
@ToString(exclude = {"item","order"})
@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; //주문수량
}
728x90
반응형
'프로그램 > 스프링' 카테고리의 다른 글
모델4 공통 상속 (0) | 2021.06.22 |
---|---|
모델3 연관관계 (0) | 2021.06.22 |
모델1-기본테이블 생성 (0) | 2021.06.22 |
엔티티 생성 및 기본 테스트 (0) | 2021.06.22 |
pom.xml (0) | 2021.06.22 |
댓글