2012-02-14 3 views
0

클래스를 확장 한 하위 클래스가 있습니다. 이처럼 는 :하위 클래스와 hql

@Table 
    @Entity 
    class Cat{ 



    class DomesticCat extends Cat{ 
     LitterBox litterBox; 

    //getter and setters 


    } 

    class TigerCat extends Cat{ 
     HuntingStyle huntingStyle; 

    //getter and setters 
    } 


} 

나는 HQL로 조회 할. 내가 "블루"색상 LitterBox이 고양이를 찾으려면 예를 들어

내가 DomesticCat과 및 TIGERCAT 수업 전에 @Entity과 @Table 주석을 추가해야합니까?

litterBox 및 huntingStyle과 같은 하위 클래스 특정 필드에 대해 데이터베이스에 열이 없습니다. 당신이 그들을 유지하려는 경우

답변

1

@Entity가 필요

덕분에 DomesticCatTigerCat 추가합니다. @Inheritance 주석을 사용하여 하위 클래스를 매핑하는 방법을 정의 할 수 있습니다. 단일 테이블의 경우 @Inheritance(strategy=SINGLE_TABLE)을 사용하십시오.

@Table은 추가하지 않으면 기본값으로 설정됩니다.

+0

답장을 보내 주셔서 감사합니다. 어디에서 부모 클래스 또는 모든 하위 클래스에 @Inheritance (strategy = SINGLE_TABLE)를 써야합니까? 그리고이 모든 클래스를 단일 테이블에 매핑 할 수 있다고 쓰는 경우, 올바르게 이해합니까? – merveotesi

+0

@Inheritance (strategy = SINGLE_TABLE)를 상위 클래스에 추가해야합니다. 모든 하위 클래스는 상위 클래스의 테이블에 매핑됩니다. – Pimgd

+0

대단히 감사합니다. – merveotesi