티스토리 뷰

반응형

오늘은 @Enumerated란 무엇이며

언제 어떻게 사용해야하는지 알아보자.

 


엔티티 매핑에서

Enum 타입을 사용할 때

@Enumerated 어노테이션을 사용하는데

 

우선 @Enumerated 어노테이션의 종류는 두 가지이다.

✔ EnumType.ORIGINAL : enum 순서(숫자) 값을 DB에 저장

✔ EnumType.STRING : enum 이름 값을 DB에 저장

 

 

 

예시를 들어보자.

 

OrderStatus enum 클래스

다음과 같은 enum 클래스에서

어노테이션의 종류가 EnumType.ORIGINAL이라면

ORDER  ==> 1로 저장

CANCEL ==> 2로 저장된다.

 

어노테이션의 종류가 EnumType.STRING이라면

"ORDER", "CANCEL" 로 저장된다.

 

 

  근데 EnumType.ORIGINAL은 함부로 사용할 수 없다.

만약 enum 타입이 다음과 같이 변경된다면 어떨까? 🤔

 

변경된 enum 타입

 

다음과 같은 상황에선

EnumType.ORIGINAL인 경우

AWAIT ==> 1

CANCEL ==> 2

CANCEL ==> 3

으로 저장된다.

 

그럼 기존의 CANCEL(2)와 현재의 CANCEL(3)이 혼용된다.

 

따라서 다음과 같은 방식은 추천하지 않는다.

 


 

오늘은 @Enumerated란 무엇이며 어떻게 사용하는지에 대해 알아보았다.

그럼 오늘도 열심히 개발하자! 📚

반응형