Использование аннотаций Hibernate для сохранения настраиваемого значения для атрибута Enumerated

У меня есть много перечислений Java, которые я сохраняю с помощью Hibernate. Насколько мне известно, существует два различных стандартных способа сохранения этих перечислений:

@Enumerated(EnumType.ORDINAL)

Это значение по умолчанию, и оно просто сохраняет порядковое значение из перечисления.

@Enumerated(EnumType.STRING)

При этом сохраняется имя значения enum.

До сих пор они у меня работали нормально, но теперь у меня есть новое перечисление, в котором я хочу сохранить настраиваемое значение из перечисления, которое не является ни порядковым номером, ни именем. Это возможно? Я поискал и увидел множество людей, спрашивающих, как сохранить имя, что легко сделать с помощью EnumType.STRING, но я хочу сохранить int, который можно использовать для сравнения в моих SQL-запросах. Я попытался переопределить toString (), чтобы вернуть свое пользовательское значение, но это не сработало.

Я вставлю свое перечисление java ниже. Я хочу сохранить член значения int из перечисления.

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

public enum Permission {
    VIEW (4),
    CHANGE(6),
    FULL(7);

    private int value;

    Permission(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}
9
задан Ike Walker 17 February 2011 в 17:07
поделиться