Используйте ENUMS для столбца> String < - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу проверить, могут ли быть использованы перечисления для столбца типа. Почему я не могу установить String как значение для моего перечисления?

С уважением

        @Entity
        @Table(name = "rooms")
        public class Room extends BaseModel {


            private String name;


            private int capacity;

            @Column(name = "change_time")
            private int changeTime;


            @Enumerated(EnumType.STRING)
            public Type type;


            public enum Type {
                LABORATORY("Laboratory"), //This one is not working
                OFFICE,
                COMPUTER_LAB,
                LECTURE_ROOM,
                HALL;
            }


            public Room(String name, int capacity, int changeTime, Type type) {
                this.name = name;
                this.capacity = capacity;
                this.changeTime = changeTime;
                this.type = type;
            }

            Room() {

            }

           ...Getter and Setter........

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018

Вы должны написать правильный конструктор, как это:

public enum Type {

    private String name;

    LABORATORY("Laboratory"),
    /// ...
    HALL("Hall");

    // constructor with String parameter
    Type(String name){
        this.name = name;
    }

    String getName(){
        return name;
    }

}
0 голосов
/ 06 ноября 2018

Вы должны создать свой enum, как показано ниже, указав конструктор.

public enum Type {

    LABORATORY("Laboratory"),
    OFFICE("Office"),
    COMPUTER_LAB("Computer_lab"),
    LECTURE_ROOM("Lecture_room"),
    HALL("Hall");

    private String value;

    private Type(String value)
    {
        this.value = value;
    }

    public String getValue()
    {
        return value;
    }

    public void setValue(String value)
    {
        this.value = value;
    }

}
0 голосов
/ 06 ноября 2018

Hello Отсутствует конструктор Type (String) в вашем перечислении

public enum Type {
    LABORATORY("Laboratory"), //This one is not working
    OFFICE,
    COMPUTER_LAB,
    LECTURE_ROOM,
    HALL;

    private final String val;

    Type() {
        this.val = "";
    }

    Type(String val) {
        this.val = val;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...