Spring Boot/JPA
ENUM type 관리
게슬
2021. 1. 30. 12:13
728x90
ORDER entity를 다시 보면
package jpabook.jpashop.domain;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name="orders")
@Getter @Setter
public class Order {
@Id
@GeneratedValue
@Column(name = "order_id")
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member member;
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)
private List<OrderItem> orderItems = new ArrayList<>();
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name="delivery_id")
private Delivery delivery;
private LocalDateTime orderDate;
@Enumerated(EnumType.STRING)
private OrderStatus status;
//연관관계 메서드
public void setMember(Member member){
this.member = member;
member.getOrders().add(this);
}
public void addOrderItem(OrderItem orderItem){
orderItems.add(orderItem);
orderItem.setOrder(this);
}
public void setDelivery(Delivery delivery){
this.delivery = delivery;
delivery.setOrder(this);
}
}
이렇게 구성이 되어있는데
중간에 이런부분이 있음
@Enumerated(EnumType.STRING)
private OrderStatus status;
package jpabook.jpashop.domain;
public enum OrderStatus {
ORDER, CANCEL
}
이거랑 연결되는건데 @Enumerated(EnumType.STRING)으로 하면 column에 ORDER, CANCEL그대로 저장되고 그거말고 다른거 하나 더 있었는데 그걸로 하면 숫자 그대로 1,2,... 이렇게 저장된다 캄.
근대 관리하기에는 STRING으로 하는것이 효율적이니깐 이걸로 하셈 ㅇㅇ
728x90