두 개의 하이버 네이트 클래스가 있습니다 : 기본 클래스와 추가 필드가있는 확장 클래스. (.이 필드는 다른 테이블에 의해 매핑됩니다) 예를 들어DTYPE 컬럼없이 최대 절전 모드의 테이블에 여러 클래스 매핑하기
을, 내가 가진 :
@Entity
@Table(name="Book")
public class A {
private String ID;
private String Name;
// ...
}
@Entity
@Table(name="Book")
public class B extends A {
public String node_ID;
// ...
}
public class Node {
public String ID; // maps to B.node_ID
// ...
}
가 어떻게 Hibernate에서이지도를합니까? The hibernate documentation에는 세 가지 유형의 상속 구성이 명시되어 있습니다. 클래스 당 하나의 테이블, 유형 열이있는 테이블 하나 및 조인 테이블 -이 중 아무 것도 적용되지 않습니다.
클래스 A는 여러 프로젝트에서 재사용되는 일반 프레임 워크의 클래스이고 클래스 B (및 노드)는 하나의 프로젝트에만 적용되는 확장 기능이기 때문에 다시 사용되지 않습니다. 앞으로 house_ID 또는 다른 필드가있는 클래스 C가있을 수 있습니다.
편집 : 나는 위의 의사 코드 구성 (같은 테이블에 매핑이 엔티티) 나는 DTYPE 열이 존재하지 않는 오류가 발생하는 시도합니다. HQL을 갖는 "어디 DTYPE ="A "첨부
이러한 클래스가 판별 자 컬럼없이 동일한 테이블에 매핑되는 경우, 어떻게하는 어떤 구별 최대 절전 모드 것인가? – axtavt
@axtavt 그것이 핵심이며 B의 모든 인스턴스도 A. – ashes999