Часто полезно иметь поле в DAO, значение которого исходит от перечисления Java. Типичным примером является логин DAO, в котором обычно имеется поле, которое характеризует пользователя как "НОРМАЛЬНЫЙ" или "ADMIN". В Hibernate я бы использовал следующие 2 объекта для представления этого отношения в (semi-) -стандартном виде:
class User {
    String username;
    String passwd;
    UserType type;
}
class UserType {
    private enum Type {ADMIN, NORMAL};
    private String type;
    //Setters/Getters for Hibernate
    public void setType(String type);
    public String getType();
    //Setters/Getters for user
    public void setUserType(UserType.Type t);
    public UserType.Type getUserType();
    public static UserType fromType(UserType.Type t);
}
Это работает, но я нахожу класс UserType неопределенным и требую слишком много бюрократии просто для хранения нескольких значений. В идеале, Hibernate должен поддерживать поля enum напрямую и создать дополнительную таблицу для хранения значений перечисления.
Мой вопрос: есть ли способ прямого отображения класса перечисления в Hibernate? Если нет, мой шаблон для представления перечислений достаточно хорош, или я чего-то не хватает? Какие другие модели используют люди?