본문 바로가기
Application/Spring

[Spring] Entity에 Enum 데이터 사용하기

by 윤루트 2022. 3. 17.

Entity 클래스를 생성할 때 enum 클래스를 사용하곤 한다.

 

다음과 같이 Enum class가 있다.

public enum OrderStatus {
	ORDER, CANCEL
}

Order 클래스에서 위의 Enum 데이터를 사용하려면 다음과 같이 생성한다.

@Entity
@Getter @Setter
public class Order {
	
    ...
    
    @Enumerated(EnumType.STRING)
    private OrderStatus status;
    
    ...
}

 

이때, Enumerated 어노테이션에는 두가지의 EnumType이 존재한다.

- ORDINAL : enum 순서 값을 저장한다.

- STRING : enum 이름을 저장한다.

 

위 클래스에서 

만약 ORDINAL로 지정한다면, ORDER : 1, CANCEL : 2 에 맵핑되어 순서대로 저장된다.

만약 STRING으로 지정한다면, ORDER : "ORDER", CANCEL : "CANCEL" 로 문자열 자체가 저장된다.

 

언뜻 보면 ORDINAL이 차례대로 저장되어 더 좋아 보일 수 있지만,

만약 enum 타입 값이 변경되거나 중간에 값을 추가하는 경우 치명적인 문제가 발생할 수 있다.

 

따라서 ORDINAL 보다 STRING을 사용하도록 하자.

댓글