2011-08-01 4 views
0

그들 사이에 복잡한 관계가있는 테이블 세트를 매핑하려고합니다. 기본적인 아이디어는 부모 테이블 형식 필드가 관련 기록이 자식 1 또는 자식 2에서 발생 여부를 결정한다는 것입니다 데이터베이스에서Hibernate에서 두 개의 상속 된 테이블에 테이블 매핑하기

Table: Parent 
     id 
     type 

Table: Child1 
     parentId : foreign 
     list of fields 

Table: Child2 
     parentId : foreign 
     list of fields 

: 나는 다음과 같은 필드가있는 테이블을 가지고있다. 이 방식으로 나는 그 타입에 따라 레코드에 관한 정보를 저장한다. 그들은 모두 고객이지만 일부는 개인이고 일부는 기업이므로이 정보에 따라 별도의 정보를 저장할 수 있습니다.

내 질문은 어떻게 이것을 최대 절전 모드에서 모델링합니까? @SecondaryTable을 사용하여 두 테이블을 병합하는 방법을 알고 있지만 부모 테이블의 값에 의존하여이 작업을 수행하는 방법은 무엇입니까?

답변

1

당신이 찾고있는 것은 클래스에 판별 자 열을 사용하는 것입니다. Hibernate docs re inheritance mapping

참조 예는이 큰 감사를 보이는

<class name="Payment" table="PAYMENT"> 
    <id name="id" type="long" column="PAYMENT_ID"> 
     <generator class="native"/> 
    </id> 
    <discriminator column="PAYMENT_TYPE" type="string"/> 
    <property name="amount" column="AMOUNT"/> 
    ... 
    <subclass name="CreditCardPayment" discriminator-value="CREDIT"> 
     <join table="CREDIT_PAYMENT"> 
      <property name="creditCardType" column="CCTYPE"/> 
      ... 
     </join> 
    </subclass> 
    <subclass name="CashPayment" discriminator-value="CASH"> 
     ... 
    </subclass> 
    <subclass name="ChequePayment" discriminator-value="CHEQUE"> 
     ... 
    </subclass> 
</class> 
+0

입니다. 특수 효과를 사용하여이를 수행하는 방법을 설명해 주시겠습니까? –

+0

@Michael : http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e1168 –

+0

새디스트가 아니거나 아무것도 아니지만 나는 discriminator를 가지고 있다고 들었다. 다른 테이블의 설명과 함께 이질적인 ID입니다. 이것이 어떻게 효과가 있을지 생각해? –

관련 문제