๐ฏ ์์ดํ 35. ordinal ๋ฉ์๋ ๋์ ์ธ์คํด์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ผ.
์ด๊ฑฐ ํ์
์ ํด๋น ์์๊ฐ ๊ทธ ์ด๊ฑฐ ํ์
์์ ๋ช ๋ฒ์งธ ์์น์ธ์ง๋ฅผ ๋ฐํํ๋ ordinal
์ด๋ผ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
public enum RoleType {
USER, ADMIN;
}
@Entity
public class Member {
@Id
private Long id;
@Column(name = "name")
private String username;
private Integer age;
@Enumerated(EnumType.ORDINAL)
private RoleType roleType;
}
์ ์ฒ๋ผ javax.persistence
์์ ์ ๊ณตํ๋ ํ์
์ enum์ผ๋ก ์ง์ ํ๋ @Enumerated
์ ์ ๊ณตํด์ค๋ค.@Enumerated
์ ๋ํ
์ด์
์๋ ๋ ๊ฐ์ง ์ต์
์ด ์๋๋ฐ EnumType.ORDINAL
๊ณผ EnumType.STRING
์ด ์๋๋ฐ EnumType.ORDINAL
์ ์ต์
์ผ๋ก ๋ฃ์ผ๋ฉด ๋ด๋ถ์ ์ผ๋ก ordinal
ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ enum๊ฐ์ ์์๋ก ์ ์ฅํ๊ฒ ๋๋๋ฐ
์ฌ๊ธฐ์ ๋ง์ฝ RoleType
์ ์ถ๊ฐ๊ฐ ๋๋ค๋ฉด GUEST
๋ผ๋ ๊ฐ์ด ์์์ ์ถ๊ฐ๊ฐ ๋๋ค๋ฉด USER
๋ก ์ ์ฅ๋ ๊ฐ์ GUEST
๋ก ๋๊ธฐ ๋๋ฌธ์ ์ํํ๋ค.
public enum RoleType {
GUEST, USER, ADMIN;
}
๋ฐ๋ผ์, ํน๋ณํ ์ฉ๋๊ฐ ์๋๋ผ๋ฉด ordinal
๋ฉ์๋๋ ์ ๋ ์ฌ์ฉํ์ง ๋ง์
์ฐธ๊ณ ์๋ฃ
Joshua Bloch, ใEffective Java 3/Eใ, ๊ฐ์๋งต์ ์ฎ๊น, ํ๋ก๊ทธ๋๋ฐ์ธ์ฌ์ดํธ(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=