Enum을 사용할 필드에 아래와 같은 내용 추가

 

@Enumerated(EnumType.STRING)
private State state; // State.CREATED 가 저장될 예정입니다.

EnumType.STRING 은 이 내용을, value 가 아닌, name을 데이터 타입으로 사용하겠다는 의미이다.

데이터 베이스에는 아래와 같이 저장이 된다.

 

불러올 때도 마찬가지로 "CREATED" 라는 String 데이터가 저장된다.

아래와 같이 ORDINAL 타입은 사용하지 않는 것을 추천한다.

@Enumerated(EnumType.ORDINAL)

 

자바의 경우 enum 타입 내부의 필드 순서에 따라서 숫자값을 가지게 되는데 이는 순서가 바뀔 경우 숫자값에 해당하는 value 가 달라질 수 있기 때문에 이는 시스템에 아주 큰 문제를 일으킬 수 있기 때문이다.