Подтвердить что ты не робот

Отображение типов перечислений с аннотациями Hibernate

У меня есть тип перечисления на моей модели Java, который я хотел бы сопоставить с таблицей в базе данных. Я работаю с Hibernate Annotations, и я не знаю, как это сделать. Поскольку ответы, которые я искал, были довольно старыми, мне интересно, какой путь лучше?

Заранее спасибо

4b9b3361

Ответ 1

Вам нужно что-то еще, чем аннотация @Enumerated? Например, следующее перечисление:

public enum MyEnum { 
    VALUE1, VALUE2; 
}  

Может использоваться и аннотироваться следующим образом:

private MyEnum myEnum;
@Column(name="myenum") 
@Enumerated(EnumType.ORDINAL) 
public MyEnum getMyEnum() { 
    return myEnum 
}

Вы можете указать, как перечисление должно сохраняться в базе данных с помощью свойства EnumType enum аннотации @Enumerated. EnumType.ORDINAL указывает, что перечисление будет сохранено как целочисленное значение. Здесь myEnum, установленный в VALUE1, будет сохраняться как 0, VALUE2 как 1 и т.д.

Альтернативой является использование EnumType.STRING для указания того, что перечисление будет сохранено с использованием имени значения перечисления, для которого установлено поле. Итак, применительно к предыдущему примеру установка поля myEnum в MyEnum.VALUE1 будет сохраняться как VALUE1 и т.д.