2013-06-24 15 views
5

için enum tür üretilemiyor JPA 2.1 kullanıyorum. Ben mysql enum type sütunu: gender enum('male','female') gibi genellemek istiyorum. Benim Enum sınıfı JPA varlık sınıfındaMySql'de JPum öğesi

public enum Gender { 
    MALE, 
    FEMALE 
} 

olduğunu

@Enumerated 
private Gender gender;//generate int type column 

Ve

@Enumerated(EnumType.STRING) 
private Gender gender; //generate varchar type column. 

MySql enum türü sütununu oluşturmak için herhangi bir yolu var mı?

+1

Bunu bir deneyin vermek isteyebilirsiniz - http://stackoverflow.com/a/8710305/738746 –

cevap

6

kullanın aşağıdaki kodu:

public enum Gender { 
    MALE, FEMALE; 
} 

@Enumerated(EnumType.STRING) 
@Column(columnDefinition = "ENUM('User', 'Moderator', 'Admin')") 
public Role role; 
} 
+0

Sadece bu derleme değil, aynı zamanda "Cinsiyet" ve Rol ve bu nedenle soruya cevap vermiyor, bir şey açıklamıyor. İnsanlar bunu neden böyle yapar? –

+0

Örnek önemsiz bir şekilde bir araya getirilirken, enum değerlerinizi güvensiz bir sayı veya dize türünde depolamak yerine, bir enumu JPA ile gerçek bir SQL ENUM türüne nasıl eşleştirileceğini gösteren bu tek yanıt budur. . – UncleBob

+0

Enum tür ANSI uyumlu mu? Enum standart SQL'de mi tanımlanmış yoksa sadece MySQL için mi? Bu durumda: DB tablosuyla (ve DBMS) '@ Entity' sınıfını ('Kişiyi veya başka bir şeyi benzer şekilde) birleştiren bu çözüm değil midir? –

0

Veritabanında dize numaralandırma değerini kullanmak isterseniz, veritabanı türünde veritabanı cetveli varchar taban olmalıdır. Aslında, I want to genrate mysql enum type column açık değilim. Ama u MALEmale için görüntü çıkışı istiyorsanız, aşağıdaki gibi referans:

public enum Gender { 
    FEMALE("female"), MALE("male"); 

    private String label; 

    private Gender(String label) { 
     this.label = label; 
    } 

    public String getLabel() { 
     return label; 
    } 
} 

testi calss

public static void main(String args[]) { 
    System.out.println(Gender.MALE) 
} 

Çıktı: erkek

+0

mysql bir "enum" veri türüne sahiptir: http://dev.mysql.com/doc/refman/5.7/en/enum.html – Creature