티스토리 뷰

spring

@Enumerated

kirinman 2022. 12. 30. 10:54

@Enumerated 어노테이션은 엔티티 클래스 속성 중 Enum 타입의 변수에 사용할 수 있다.

 

EnumType.STRING vs EnumType.ORDINAL

  • EnumType.STRING : 각 Enum 이름을 컬럼에 저장한다. ex) G, PG, PG13..
  • EnumType.ORDINAL : 각 Enum에 대응되는 순서를 칼럼에 저장한다. ex) 0, 1, 2..

 

참고 https://tomee.apache.org/examples-trunk/jpa-enumerated/

 

JPA and Enums via @Enumerated

Any help with the documentation is greatly appreciated. All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be sur

tomee.apache.org

예시)

하기의 Enum이 있을때

public enum Rating {
    UNRATED,
    G,
    PG,
    PG13,
    R,
    NC17
}

아래와 같이 사용할 수 있다.

@Entity
public class Movie {

    @Id
    @GeneratedValue
    private int id;
    private String director;
    private String title;
    private int year;

    @Enumerated(EnumType.STRING)
    private Rating rating;

    public Movie() {
    }

    public Movie(String director, String title, int year, Rating rating) {
        this.director = director;
        this.title = title;
        this.year = year;
        this.rating = rating;
    }

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public Rating getRating() {
        return rating;
    }

    public void setRating(Rating rating) {
        this.rating = rating;
    }

'spring' 카테고리의 다른 글

싱글톤 패턴  (0) 2022.12.30
@Entity / @Table  (0) 2022.12.30
primitive type으로 안하는 이유?  (0) 2022.12.28
devtools로 springboot 자동 재시작하게 만들기  (2) 2022.12.26
@ResponseBody 어노테이션?  (0) 2022.12.25
댓글