@sanek_gyy

Как сохранить Java обьект с полем типа Enum?

Есть таблица cats. Колонка color имеет тип Enum cats_color.
5c82d2c2b0da1430031149.png
Есть класс Cat
@Entity
@Table(name = "cats")
public class Cat {

    @Id
    @NotNull
    private String name;

    @Column(name = "color")
    CatColor color;

    @NotNull(message = "Возраст кота должен Zбыть")
    @Column(name = "tail_length")
    private int tailLength;

    @Column(name = "whiskers_length")
    private int whiskersLength;
    public Cat() {
    }

    public Cat(@NotNull String name, CatColor color, @NotNull(message = "Возраст кота должен Zбыть") int tailLength, int whiskersLength) {
        this.name = name;
        this.color = color;
        this.tailLength = tailLength;
        this.whiskersLength = whiskersLength;
    }

И Enum
public enum CatColor {
    BLACK,
    WHITE;

    CatColor() {
    }
}

Делай запрос через постмен
{
"name" : "qwertyq3",
"color" : "BLACK",
"tailLength": "33",
"whiskersLength": "31"
}

5c82d365b3c20752919922.png
Так же пробовал с аннотацией @Enumerated(EnumType.STRING). Та же ошибка тольк с типом String.
Как правильно сохранять именно в таком случае?
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Вот, мой пример:

public class User {
@ElementCollection(targetClass = Role.class, fetch = FetchType.EAGER)
    @CollectionTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"))
    @Enumerated(EnumType.STRING)
    private Set<Role> roles;
}


public enum Role {
    AUTHOR,
    CUSTOMER,
    ADMIN
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы