我有以下模型/实体:
@Entity
@DiscriminatorColumn(name="type")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public class Insurance extends Generic<Insurance> {
@OneToOne public myInsurance.models.liability.hivAndVHProtection.Hiv_Answer hivAndVHProtectionAnswer;
}
@MappedSuperclass
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Answer extends Generic<Answer> {}
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorValue("A")
public class Hiv_Answer extends Answer {
@OneToOne public HivAndVHProtection_Variant variant;
}
@Entity
@Inheritance
@DiscriminatorValue("E")
public class Hiv_AnswerForEntities extends Hiv_Answer {
public int proffesionGroup;
public int personCount;
public int contributionPerPerson;
@Transient public int totalContribution;
}
我想在db中有两个表:
Insurance
和Hiv_Answer
我希望实体:Hiv_Answer
和Hiv_AnswerForEntities
保留在表Hiv_Answer
中(共享公共ID池)
我希望表Insurance
与表Hiv_Answer
f.e相关联。在专栏Hiv_Answer_id
我尝试了许多与注释的组合。没有像它那样工作。
我的当前配置似乎没问题,但事实并非如此。我正在获得额外的表:Hiv_AnswerForEntities
,而我根本没有Hiv_Answer
表的关系。
似乎使用来自strategy=InheritanceType.SINGLE_TABLE
实体的Hiv_Answer
来使用来自超类strategy=InheritanceType.TABLE_PER_CLASS
的{{1}}
我找不到我的错误。
请帮我解决这个问题。
答案 0 :(得分:0)
在JPA中,您无法在继承树中重新定义继承策略,继承的根定义为整个继承树设置它