@Enumerated
어노테이션을 활용하여 Entity
에 Enum
타입을 활용할 수 있다.
ORDINAL : Enum의 선언된 순서를 Integer 값으로 변환하여 DB column에 넣어준다. 즉, Enum 내부에 선언된 수들의 순서가 매우 중요하다.
DB column은 numeric 타입.
STRING : Enum의 선언된 상수의 이름을 String 클래스 타입으로 변환하여 DB에 넣어준다.
DB column은 String 타입.
@Column(nullable = false)
@Enumerated(value = EnumType.STRING)
private UserRoleEnum role;
위와 같이 값을 해당 어노테이션의 속성을 활용하여,
value를 STRING, 혹은 ORDINAL 로 설정할 수 있다.
정리
EnumType.STRING : 각 Enum 이름을 컬럼에 저장한다. ex) G, PG, PG13..
EnumType.ORDINAL : 각 Enum에 대응되는 순서를 칼럼에 저장한다. ex) 0, 1, 2..