Основываясь на комментарии @SebCesbron, этот тип шаблона я сейчас использую ...
@Required
@Enumerated(EnumType.STRING)
public MyEnumType myenum;
public enum MyEnumType {
ENUMONE ("label one", 1),
ENUMTWO ("label two", 2);
String label;
Int value;
CastType(String label, Int value) {
this.value = value;
this.label = label;
}
@Override
public String toString() {
return this.label;
}
public Int getValue() {
return this.value;
}
public String getLabel()
{
return label;
}
}
При использовании EnumType.STRING
база данных будет содержать имя элемента перечисления - переопределение toString
не влияет на это, поскольку JPA использует name()
, что является окончательным.
Итак, по поводу моего точного варианта использования и вопроса:
@Required
@Enumerated(EnumType.STRING)
public GenderEnum myenum;
public enum GenderEnum {
M ("Male"),
F ("Female");
String label;
CastType(String label) {
this.value = value;
}
@Override
public String toString() {
return this.label;
}
}