개발일기장

ENUM type 관리 본문

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

'Spring Boot > JPA' 카테고리의 다른 글

DTO이용해서 entity 참조 된거 보내기  (0) 2021.02.06
embedded type 관리  (0) 2021.01.30
일반적인 Entity  (0) 2021.01.30
Spring JPA강의들은거 기록  (0) 2021.01.30
Comments