В JPA у вас есть два варианта:
По имени;
По порядковому номеру (целому числу).
Мне не нравится (2). Если вы измените порядок своего перечисления, он сломается. В качестве такового чаще используется (1) (по моему опыту).
Я бы сделал то же самое в JavaDB. Просто сохраните имя перечисления как текст. Он имеет преимущество в том, что вы можете посмотреть на строку и узнать, что это значит, вместо того, чтобы пытаться выяснить, что означает «3» в столбце status_id.
Если вы беспокоитесь о пробеле (и 99% времени я бы не стал), используйте целое число или код. Например:
public enum Vat {
NORMAL(new BigDecimal("0.25")),
FOOD(new BigDecimal("0.12")),
BOOKS(new BigDecimal("0.06")),
NONE(new BigDecimal("0.00"));
private static final Map<String, Vat> LOOKUP = new HashMap<String, Vat>();
static {
Vat[] values = values();
for (Vat vat : values) {
LOOKUP.put(vat.code, vat);
}
}
private final String code;
private final String value;
private Vat(String code, BigDecimal value) {
this.code = code;
this.value = value;
}
public String getCode() { return code; }
public String getValue() { return value; }
public Vat fromCode(String code) {
return LOOKUP.get(code);
}
}