Hibernate @Enumerated mapping

Euler Проекта, наверняка.

26
задан Manuel Drieschmanns 8 November 2017 в 09:23
поделиться

2 ответа

Вот пример, который использует аннотации.

http://www.gabiaxel.com/2011/01/better-enum-mapping-with-hibernate.html

Он все еще основан на пользовательском типе пользователя. Четыре с половиной года спустя, и я до сих пор не знаю лучшего способа сделать это.

Как правило, я сохраняю свои значения перечисления в виде char / int, некоторого простого идентификатора, а затем использую переходный метод, который находит соответствующее перечисление по значению простого идентификатора, например

@Transient
public MyEnum getMyEnum() {
    return MyEnum.findById(simpleId); // 
}

и ...

public enum MyEnum {
    FOO('F'),
    BAR('B');

    private char id;
    private static Map<Character, MyEnum> myEnumById = new HashMap<Character, MyEnum>();

    static {
        for (MyEnum myEnum : values()) {
            myEnumById.put(myEnum.getId(), myEnum);
        }
    }

    private MyEnum(char id) {
        this.id = id;
    }

    public static MyEnum findById(char id) {
        return myEnumById.get(id);
    }

    public char getId() {
        return id;
    }
}
0
ответ дан 28 November 2019 в 17:25
поделиться
public enum Status
{
    OPEN("O"),
    WAITLIST("W"),
    COMPLETE("C")

private String description;

private Status(String description)
{
   this.description = description;
}

public String getDescription()
{
    return description;
}
}

and then when you read it:

Status.OPEN.getDescription()
-5
ответ дан 28 November 2019 в 17:25
поделиться
Другие вопросы по тегам:

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