孫衛琴的《精通JPA與Hibernate》讀書筆記:@Enumerated註解映射枚舉類型

如下代碼定義了一個表示性別類的Gender枚舉類型:數據庫

public class Gender extends Enum{
  public static final Gender FEMALE;
  public static final Gender MALE;
}

假定Customer類有一個表示性別的gender屬性,它是Gender枚舉類型:markdown

@Column(name="GENDER")
private Gender gender=Gender.MALE;

默認狀況下,Hibernate會把枚舉常量的序號存儲到數據庫中。Gender.FEMALE的序號是0,Gender.MALE的序號爲1。因此對於以上代碼,在數據庫中,與gender屬性對應的GENDER字段的取值爲1。
也能夠採用@Enumerated註解來映射gender屬性的類型:ide

@Enumerated(EnumType.STRING)
@Column(name="GENDER")
private Gender gender=Gender.MALE;

以上@Enumerated註解使得Hibernate把枚舉常量的字符串名字存儲到數據庫中。Gender.FEMALE的名字是「FEMALE」,Gender.MALE的名字是「MALE」。因此對於以上代碼,在數據庫中,與gender屬性對應的GENDER字段的取值爲「MALE」。
在這裏插入圖片描述atom

相關文章
相關標籤/搜索