[ShowMyCNFT] @Enumerated() 에노테이션

junghan·2023년 4월 22일
0

SpringBootProject

목록 보기
30/35
post-thumbnail

@Enumerated(EnumType.STRING)은 JPA에서 열거형(Enum) 타입을 매핑할 때 사용하는 애너테이션입니다. 이 애너테이션을 사용하면 열거형 상수가 데이터베이스에 문자열 형태로 저장되고 조회됩니다.

예를 들어, 다음과 같은 열거형이 있다고 가정해보겠습니다.

public enum Gender {
    MALE, FEMALE, UNKNOWN
}

이 열거형을 JPA에서 매핑하려면 @Enumerated(EnumType.STRING) 애너테이션을 사용하면 됩니다. 다음은 엔티티 클래스에서 이 애너테이션을 사용한 예시입니다.

@Entity
public class Person {
    @Id
    private Long id;
    
    private String name;
    
    @Enumerated(EnumType.STRING)
    private Gender gender;
    
    // getters and setters
}

위 예제에서 gender 필드는 @Enumerated(EnumType.STRING) 애너테이션을 사용하여 열거형 상수가 문자열 형태로 데이터베이스에 저장되도록 설정되었습니다. 이제 이 엔티티 객체를 데이터베이스에 저장하면, gender 필드의 값은 MALE, FEMALE, UNKNOWN 중 하나의 문자열로 저장됩니다.

예를 들어, 다음은 Person 엔티티 객체를 생성하고 저장하는 코드입니다.

Person person = new Person();
person.setId(1L);
person.setName("Alice");
person.setGender(Gender.FEMALE);

entityManager.persist(person);

위 코드를 실행하면, Person 객체가 데이터베이스에 저장될 때 Gender.FEMALE 상수는 "FEMALE"이라는 문자열로 저장됩니다.

이와 같이 @Enumerated(EnumType.STRING) 애너테이션을 사용하면 열거형 상수를 문자열 형태로 데이터베이스에 저장할 수 있습니다.
이 애너테이션을 사용하면 데이터베이스에 저장된 값을 조회할 때도 열거형 상수 대신 문자열을 사용할 수 있습니다.

profile
42seoul, blockchain, web 3.0

0개의 댓글