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을 사용하도록 하자.
'Application > Spring' 카테고리의 다른 글
[Spring] Spring DI 개념과 방법 (0) | 2022.08.22 |
---|---|
[Spring] SMTP와 비동기 (2) | 2022.08.05 |
[JPA] Spring Data JPA containing 관련 에러 (1) | 2022.05.05 |
[Spring] 인텔리제이에서 lombok 사용 (0) | 2022.02.13 |
[Spring] H2 데이터베이스 사용하기 (0) | 2022.01.07 |
댓글