Часто корисно мати поле в DAO, значення якого походить від перерахування Java. Типовим прикладом є DAO для входу, де зазвичай у вас є поле, яке характеризує користувача як "ЗВИЧАЙНИЙ" або "АДМІНІСТРАТОР". У режимі глибокого сну я використовував би наступні 2 об’єкти для представлення цього відношення у (напів-) безпечному типі:
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 повинен безпосередньо підтримувати поля перерахування та створити додаткову таблицю для зберігання значень перерахування.
Моє запитання: чи є якийсь спосіб безпосередньо зіставити клас перерахування в сплячому режимі? Якщо ні, то чи достатньо хороший мій шаблон для подання переліків чи мені чогось не вистачає? Які ще моделі використовують люди?