@roman_CH

Как реализовать Перечисления (Enums) в java Spring JPA?

Добрый вечер всем. Помогите пожалуйста, не могу реализовать использование перечисления в качестве поля объекта. У объекта может быть только одно значение перечисления.
сейчас делаю через коллекцию:
@ElementCollection(targetClass = Quality.class, fetch = FetchType.EAGER)
    @CollectionTable(name = "quality", joinColumns = @JoinColumn(name = "realty_id"))
    @Enumerated(EnumType.STRING)
    private Set<Quality> quality;

и все работает, но мне надо так
@Column(name = "quality", nullable = false, unique = false)
    @Enumerated(EnumType.STRING)
    private Quality quality;

но при таком варианте возникает ошибка при открытии веб страницы :
No key, method or field with name 'quality' on line 16
вот сама страница:
<html>
<body>
<div>Список объектов</div>
<span><a href="newobj">Создать объект</a></span>
<div>
    <form method="post">
        <input type="number" name="price1" placeholder="цена от" value=0>
        <input type="number" name="price2" placeholder="цена до" value=0>
        <button type="submit">Применить фильтр</button>
    </form>
{{#realties}}
    <div>
        <b>{{id}}</b>
        <b>{{description}}</b>
        <b>{{price}}</b>
        <b>{{quality}}</b>
    </div>
{{/realties}}
</body>
</html>

Подскажите, почему не получается такая реализация?
  • Вопрос задан
  • 587 просмотров
Решения вопроса 1
@mipan
Добавьте в enum конструктор c параметром.
Должно выглядеть как-то так:
public enum  Quality {
    FINE("fine");
private String value;

Quality (String value) {this.value = value;}

@Override
public String toString(){
    return value;
}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽