Bir DAO'da değeri Java numaralandırmasından gelen bir alana sahip olmak genellikle yararlıdır. Tipik bir örnek, genellikle kullanıcıyı "NORMAL" veya "ADMIN" olarak nitelendiren bir alana sahip olduğunuz oturum açma DAO'sudur. Hazırda Bekletme modunda, bu ilişkiyi (yarı) tip güvenli bir şekilde temsil etmek için aşağıdaki 2 nesneyi kullanırdım:
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);
}
Bu işe yarıyor, ancak UserType sınıfını kaba buluyorum ve sadece birkaç değeri depolamak için çok fazla bürokrasi gerektiriyor. İdeal olarak, Hibernate enum alanlarını doğrudan desteklemeli ve numaralandırma değerlerini depolamak için fazladan bir tablo oluşturmalıdır.
Sorum şu: Hibernate'de bir numaralandırma sınıfını doğrudan eşleştirmenin bir yolu var mı? Değilse, numaralandırmaları temsil etme modelim yeterince iyi mi yoksa bir şeyi mi kaçırıyorum? İnsanlar başka hangi kalıpları kullanıyor?