2013-10-13 2 views
0

는이 같은 데이터베이스에있는 모든 값을 저장하는 일반 표 "사전으로"이 필요합니다 :JPA 2 및 일반 클래스 내 데이터 모델에

TYP   KEY   VALUE 
--------------------------------- 
COUNTRY  TUN   TUNISIA 
COUNTRY  FRA   FRANCE 
PROFESSION LAW   Lawyer 
PROFESSION FRA   Farmer 

을 할 수는 일반을 참조하는 다른 테이블이 있습니다 테이블 사람과 같은 테이블

CODE  NAME   COUNTRY   PROFESSION 
----------------------------------------------------- 
1   PAUL   TUN    FRA  
2   Armin  FRA    DOC 

colomn Person.country은 일반 = '국가' 및 Person.profession 그냥 열 dictionnary.key을 참조하는 열 dicionnary.key을 참조하는 경우 일반 = '직업에'

,536,

JPA 2를 사용하여 DataModel을 만드는 방법은 무엇입니까?

감사합니다.

답변

1

솔루션의 의미에 따라 다릅니다. 상속을 사용하지 않는다면 두 엔티티를 동일한 테이블에 매핑하는 방법이 있다고 생각하지 않습니다.

그래서 옵션은 다음과 같습니다

  • 사용 상속과 Country 및 관련 Profession의 실체를 확인하십시오. @DiscriminatorColumn@DiscriminatorValue을 확인하십시오. More info here.

  • 복합 키 (@IdClass)와 함께 "일반"엔티티를 사용하십시오. 검색된 속성을 가능성으로 해석 할 코드가 될 것입니다.

  • 데이터 모델을 수정하십시오. 동일한 테이블에있는 관련없는 항목을 혼합하면 정규화 된 디자인에 어긋나고 다른 데이터베이스 도구 (외래 키와 같은)를 사용하여 문제가 발생합니다. 국가에 대한 테이블을 만들고 직업에 대한 테이블을 만듭니다. 이것이 제가 권고하는 접근법입니다.