Il est souvent utile de disposer d'un champ dans un DAO dont la valeur vient de Java énumération. Un exemple typique est une connexion DAO où vous avez généralement un champ qui caractérise l'utilisateur "NORMAL" ou "ADMIN". En mode veille prolongée, je voudrais utiliser les 2 objets pour représenter cette relation dans un (semi-)typesafe façon:
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);
}
Cela fonctionne, mais je trouve le UserType classe ungly et nécessitant trop de bureaucratie, juste pour stocker un couple de valeurs. Idéalement, Hibernate devrait soutenir les champs de type enum directement et serait de créer une table supplémentaire pour stocker les valeurs d'énumération.
Ma question est: Est-il possible de mapper directement une classe d'énumération en veille prolongée? Si non, est mon modèle pour représenter les énumérations assez bon ou j'ai loupé quelque chose? Quels sont les autres modèles utilisent les gens?