값이 Java 열거에서 나오는 DAO에 필드를 갖는 것이 종종 유용합니다. 일반적인 예는 일반적으로 사용자를 "NORMAL"또는 "ADMIN"으로 특성화하는 필드가있는 로그인 DAO입니다. Hibernate에서 나는이 관계를 (semi-) typesafe 방식으로 표현하기 위해 다음 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는 열거 형 필드를 직접 지원해야하며 열거 형 값을 저장할 추가 테이블을 생성해야합니다.
내 질문은 : Hibernate에서 열거 형 클래스를 직접 매핑하는 방법이 있습니까? 그렇지 않다면 열거 형을 나타내는 패턴이 충분합니까? 아니면 뭔가 빠졌습니까? 사람들이 사용하는 다른 패턴은 무엇입니까?