2014-02-07 1 views
2

최대 절전 모드 매핑을 모델링 할 때 문제가 있습니다. 다음은 내가 가지고있는 것입니다 :임베디드 단일 테이블 매핑

@Entity 
@Table 
public class Entry { 

@Id private long id; 
@Embedded private Content content; 
... 
} 

@MappedSuperclass 
@DiscriminatorColumn(name="content_type") 
@Inheritance(strategy=InheritanceType.SINGLE_TABLE) 
public abstract class Content { 

@Column(name="content_type") private String type; 
... 
} 

@Embeddable 
@DiscriminatorValue("A") 
public class AContent extends Content { 
... 
} 

@Embeddable 
@DiscriminatorValue("B") 
public class BContent extends Content { 
... 
} 

Entry 클래스에 포함 된 것으로 매핑 될 Content의 모든 하위 클래스를 갖고 싶습니다. 즉, 결과에서 Content의 모든 하위 클래스에있는 열이있는 Entry 테이블을 하나 갖고 싶습니다.

javax.persistence.PersistenceException: org.hibernate.InstantiationException: 
Cannot instantiate abstract class or interface: : foo.bar.Content 

는 그래서 그 하중 때문에 대신 추상적 인 내용을 인스턴스화하려고 AContent을 받고 실패 보인다

는 현재 지속 입학 시험을 말한다. 아이디어가 있으십니까? 사양은 말한다

답변

3

...

기업은 다른 기업 클래스에서 상속 할 수 있습니다. 엔티티는 상속, 다형성 연관 및 다형성 쿼리를 지원합니다.

임베디드 제품에 대해서는 상속받을 수 없으며 따라서 상속을 지원하지 않습니다.