2014-12-02 3 views
0

개인 필드가 직업 인 필드가 있다고 가정 해 봅시다. 간단히 문자열 목록입니다. 이 목록을 사용자 또는 관리자가 정의한 전문 분야의 하위 집합으로 제한하기 위해 Spring 및 최대 절전 모드를 사용하는 표준 방법은 무엇입니까? 즉, 런타임에 사전 정의 된 글로벌 전문직 목록은 {Accountant, Developer}이고 사용자는 'Plumber'를 목록에 추가합니다. 이제 새로운 사람이 생기면 그 사람이 가질 수있는 전문 직업을 목록에있는 직업으로 제한하고 싶습니다.구성원 값을 집합의 하위 집합으로 제한하는 적절한 방법

원래 열거 형을 구현했지만, 컴파일 타임에 생성되고 런타임에 추가 할 수 없기 때문에 (예 :?) 열악한 디자인처럼 보입니다. 적절한 방법으로 전문 직업이있는 한 개의 열 테이블을 정의하고 사람을 만드는 각 요청에 대해 직업의 목록 인 한 명의 구성원으로 단일 개체를 채우겠습니까? 그런 다음 도메인 객체 사용자는 싱글 톤 (아마도 서비스 계층에 있는가?)에서만 직업을 얻을 것입니다.

답변

0

일대 다 관계가있는 사람과 관련된 새로운 엔티티 직업을 만들 수 있습니다. 이런 식으로 직업은 항상 Hibernate에 의해 유지되는 것입니다. 직업 주체는별로 필요하지 않습니다. 지금은 이드와 이름뿐입니다. 나중에 필요할 때마다 더 많은 속성을 추가 할 수 있습니다.

+0

아, 이것이 올바른 방법인지 궁금 해서요. 나는 자바 측 구현이 동면 디자인과 결합되어 있다는 사실을 극복 할 수 없다고 생각한다. 나는 데이터베이스에 의해서만 뒷받침되는 독립형 자바 애플리케이션을 구상하고있다. hibernate가 최대 절전 모드 (데이터베이스)없이 수행 될 수없는 직업 값을 제한하기 때문에 여기서는 그렇지 않다. 그렇다면 Person의 Profession 멤버는 List 이되고 서비스 계층을 통해 채워 집니까? – user3442536

+0

가능합니다. 당신은 직업이 그 사람에 대해 알지 못하는 일방적 인 관계를 만들 수 있습니다. 그러나 그것은 당신에게 달려 있습니다. –

관련 문제